☕ 자바 JAVA/☕ 클래스와 함수 Class & Method

[JAVA]참조변수의 형변환

yeun.log 2024. 4. 4. 21:28
반응형

 

사용할 수 있는 멤버의 갯수를 조절하는 것

조상, 자손 관계의 참조변수는 서로 형변환 가능

 

FireEngine과 Albulance class는 같은 Car3를 상속 받고 있을 뿐, 관련이 없으므로 형변환 불가.

 

 

참조변수 type에 따라 사용범위가 계속 바뀜

 


 

실제 instance가 무엇인 지가 중요

 

참조type 변수명 = new insatnce();

이런 형태인데..

 

        Car3 car = null;
        FireEngine f3 = (FireEngine) car;   // 조상 -> 자손으로 형변환
        Car3 car2 = f3;                     // 자손 -> 조상으로 형변환

        car2.drive();                       // NullPointerException

실제 값인 instance가 null인 걸 가지고 아무리 형변환해봤자

호출 시 error가 생긴다.

 

        Car3 car3 = new Car3();
        FireEngine fe = (FireEngine) car3;  // java.lang.ClassCastException

        fe.water();

부모인 car3에 변수가 더 많기 때문에 형변환이 안된다.

 

반응형