Ch7-26. instatnceof
0. 목차
Chapter7. 객체지향 프로그래밍Ⅱ
Ch7 - 26. instatnceof 연산자
Ch7 - 26. instatnceof 연산자
▶ instatnceof 연산자란?
▷ 참조변수의 형변환(조상·자손) 가능여부 확인에 사용
▷ 가능하면, ture반환
▷ 형변환 전 반드시 instanceof로 확인!!
public class Car {
String color;
int door;
void drive() {
System.out.println("drive");
}
void stop() {
System.out.println("stop!");
}
}
class FireEngine extends Car {
void water() {
System.out.println("water");
}
}
class Ambulance extends Car {
void hospital() {
System.out.println("hospital");
}
}
public class CarTest {
void doWork(Car c) { // Car 또는 Car의 모든 자손 가능 : new Car{}, new FireEngine(); new Ambulance();
if (c instanceof FireEngine) {
System.out.println(c instanceof FireEngine); // 형변환 가능한지 확인 : c가 FireEngine의 자손이냐? true면 다음으로
FireEngine fe = (FireEngine) c; // 형변환
fe.water();
}
}
}
FireEngine fe = new FireEngine();
System.out.println(fe instanceof Object); // true
System.out.println(fe instanceof Car); // true
System.out.println(fe instanceof FireEngine); // true
Object obj = (Object)fe; // ok
Car car = (Car)fe; // ok