instanceof 연산자

Psj·2021년 5월 5일
0

java

목록 보기
1/12

참조변수의 형변환 가능여부를 반드시 확인하고 형변환을 해야한다.
형변환은 자손과 부모사이에서만 가능한데 형제관계인 클래스가 들어가면 형변환을 할수가 없다. 그때 형변환이 가능한지 알기위해서 사용하는 것이 instanceof이다.

Car c = new Car(); // 부모

Ambulance am = new Ambulance(); // 자손
FireEngine fe = new FireEngine(); // 자손

void doWork(Car c){

	if(c instanceof FireEngine){
    	FireEngine fe = (FireEngine)c;
        fe.water();
    }
}

먼저 전제를 Car클래스가 있고 Car클래스를 상속받은 클래스가 FireEngine과 Ambulance가 각각 있다고 하겠다.

위 코드에서 참조변수타입은 Car이고 들어갈수 있는값은 new Car(), new FireEngine(), new Ambulance()이다.

Car 또는 Car의 모든 자손이 doWork(Car c)에 들어갈수 있다.

위 코드를 보면
void doWork(Car c) 에 들어가는 클래스객체 c가 if(c instanceof FireEngine) FireEngine 또는 FireEngine클래스의 부모 클래스객체가 들어가면 이하 메서드의 형변환을 실행하라는 말이 된다.

profile
Software Developer

0개의 댓글