JAVA

객체지향 instanceof 연산자

연93 2022. 9. 26. 14:51

참조변수의 형변환 가능여부 확인에 사용. 가능하면 true를 반환.

형변환 전에 반드시 instanceof로 확인해야 한다.

void doWork(Car c) {     //참조변수 타입Car   (Car c 대신 new Car(),new FireEngin()등 올수있다)
if (c instanceof FireEngine){      //1. 형변환 가능한지 확인
	FireEngine fe = (FireEngine)c; //2. 형변환
    fe.water();
   }
}
더보기

형변환을 하는 이유는 인스턴스의 원래 기능을 모두 사용하려고. Car타입의 리모콘인 c로는 water()를 호출할수 없으니 리모콘을 FireEngine타입으로 바꿔서 water()를 호출

FireEngine fe = new FireEngine();
sysout(fe instanceof Object);    // true  조상
sysout(fe instanceof Car);       // true  조상
sysout(fe instaceof FireEngine); // treu  자신

참조변수의 형변환 이유 : 사용할수 있는 멤버의 갯수를 조절하기 위해