• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

자식 클래스가 부모 클래스를 캐스팅 할 때,

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

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!