- 참조 변수의 형변환 가능여부를 확인하는데 사용. 가능하면 true 반환
- 형변환 전에 반드시 instanceof로 확인해야 함.
void doWork(Car c)
if (c instanceof FireEngine) {
FireEngine fe = (FireEngine)c;
fe.water();
- 변수 instanceof 본객체의조상 ; true.
자기 자신 & 조상도 참으로 나옴. → 조상으로도 형변환이 가능하다.
형변환을 하는 이유?
- 인스턴스의 원래 기능을 모두 사용하려고.
- Car타입의 리모콘인 c로는 water()를 호출할 수 없으니까.
리모콘을 FireEngine 타입으로 바꿔서 water()를 호출
(water()메소드는 원래 FireEngine클래스에 위치)
⇒ 참조변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 갯수를 조절하기 위해서
참조변수의 형변환을 했다고해서, 객체가 바뀌는 것은 아님!! 참조변수값, 객체 그대로. 그저 타입만 변경
출처
- 자바의 정석 기초편 - youtube, ch7 - 27,28