인프런 커뮤니티 질문&답변

깨위님의 프로필 이미지
깨위

작성한 질문수

자바 : 클래스의 이해와 객체지향 프로그래밍

13.클래스 캐스팅 예외

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

작성

·

494

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());

에서 부모 클래스가 나올 줄 알았는데, 자식 클래스가 나옵니다!

혹시 그 이유가, 참조변수는 부모 클래스형이지만, 메모리에는 자식클래스가 올라와 있기 떄문인가요?

자바에서 타입을 조회할 때 메모리를 조회하는지, 참조변수 형을 조회하는지 궁굼합니다..!

 

감사합니다.

 

 

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
깨위님의 프로필 이미지
깨위

작성한 질문수

질문하기