/ JAVAJUNGSUK

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