본문 바로가기
Java의 정석/객체지향 프로그래밍 II

참조변수의 형변환

by Hwanii_ 2023. 6. 6.
728x90

 

 

 

 

 

예시)

 

 

 

 

[ Console ]

 

 

1. 37번째 줄에서 water() 메서드를 문제없이 호출.

2. 45번째 줄에서도 water() 메서드를 문제없이 호출.

 

3. 60번째 줄은 빨간 밑줄이 뜨지는 않지만, 실제 실행하면

ClassCastException 에러가 뜨게 된다.

 

왜냐하면, 참조변수 myC는 myCar 객체를 가리키고 있는데,

다운캐스팅을 해서 myFireEngine 타입의 참조변수  myFE에 주소값을 대입하면

참조변수 myFE는 myCar 객체를 가리키게 된다.

참조변수 myFE의 타입은 myFireEngine이라 멤버로 water() 메서드를 가지고 있는데,

실제 가리키고 있는 myCar 객체에는 water() 메서드가 없기 때문에,

실행시 에러가 발생 하게 된다.

반응형

'Java의 정석 > 객체지향 프로그래밍 II' 카테고리의 다른 글

매개변수의 다형성  (0) 2023.06.09
instanceof 연산자  (0) 2023.06.06
다형성 (Polymorphism)  (0) 2023.06.06
캡슐화와 접근 제어자  (0) 2023.06.06
제어자  (0) 2023.06.06