#Reference Type Casting

래퍼런스 타입의 변수들은 상속관계일 경우 형변환이 가능하다.
Member cc = new MainMember();
MainMember c = (MainMemver) cc; //큰타입에 작은 타입으로 형변환은 가능하지만
이건 가능하지만

Member cc = new Member();
MainMember c = (MainMemver) cc;
이건 컴파일은 되고 실행하면 캐스팅 오류가 난다.

Parent c = new Child();
Child xx = (Child)c; // 큰 타입을 작은 애로 형변환 가능.
// 통은 큰데 들어있는 내용이 작으니 가능
이러면 자식 클래스의 메소드, 필드에 접근이 가능하다.
이거 역시 가능하지만

Parent c = new Parent(); // 진짜로 큰 타입을 작은 걸로 형변환 안됨.
Child xx = (Child)c;
// 통도 크고 들어있는 내용도 크면 작은 걸로 못들어감.


+ Recent posts