Written by
java-style
on
on
[java] instanceof
[java] instanceof
참조변수 형변환 가능여부 확인에 사용. 가능하면 true 를 반환. (자기자신 이거나 조상에 대해)
조상 ↔ 자식
1 2 3 4 5 6 7 void dowork(Car c){ if (c instanceof (FireEngine)) { FireEngeine fe = (FireEngine)c; fe.water(); } } Colored by Color Scripter
Car 클래스가 조상, FireEngeine이 자식 상속받은 객체라 가정한다.
메소드 dowork의 매개변수로는 Car타입 자기자신이나, Car타입의 자손들이 들어올 수 있다.
if문에서 instanceof연산자는 'c가 가리키는 객체가 FireEngeine이냐?' 라고 묻는것이다.
참이면 (FireEngeine)으로 형변환해서 fe는 water()메소드를 사용할 수 있게 된다.
형변환이 가능한지 확인 . 형변환
Q. 참조변수의 형변환은 왜 하나요?
A. 참조변수타입을 변경함으로써 사용할 수 있는 멤버의 갯수를 조절하기 위해
Q. instanceof 연산자 언제 사용하나요?
A. 참조변수를 형변환하기 전에 형변환 가능여부를 확인할때
from http://jjorong-e.tistory.com/42 by ccl(A) rewrite - 2021-10-29 13:27:30