-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
자식 클래스가 부모 클래스를 캐스팅 할 때,
23.01.21 15:59 작성 조회수 351
0
안녕하세요!
강의 정말 잘 듣고 있습니다.
class PBoard {
public void PBoard(){
System.out.println("PBoard method");
}
}
class CBoard extends PBoard{
public void Cboard(){
System.out.println("Cboard method");
}
}
public class ClassCast {
public static void main(String[] args) {
PBoard sbd1 = new CBoard();
System.out.println(sbd1.getClass().getName());
CBoard sbd2 = (CBoard)sbd1;
System.out.println(sbd1.getClass().getName());
System.out.println("-------------");
}
}
위의 예제와 같이 자식 객체를 생성하고 부모타입으로 타입 캐스팅 한 경우, System.out.println(sbd1.getClass().getName());
에서 부모 클래스가 나올 줄 알았는데, 자식 클래스가 나옵니다!
혹시 그 이유가, 참조변수는 부모 클래스형이지만, 메모리에는 자식클래스가 올라와 있기 떄문인가요?
자바에서 타입을 조회할 때 메모리를 조회하는지, 참조변수 형을 조회하는지 궁굼합니다..!
감사합니다.
답변을 작성해보세요.
답변 0