day16_InstanceOfTest10

육희영·2021년 10월 28일
0
package com.java1.day16;

public class InstanceOfTest10 {
	public static void main(String[] args) {
		Car7 fe = new FireEngine7();	//다형적 표현..
		Car7 am = new Ambulance7();
		Car7 c7 = new Car7();	//다형적 표현이 아니다..
		
		Work w = new Work();
		w.doWork(fe);
		w.doWork(am);
		w.doWork(c7);
	}
}

class Work {
	void doWork(Car7 c) {
		if( c instanceof FireEngine7) {
			FireEngine7 fe = (FireEngine7) c;	//부모 -> 자손 으로 형변환 이니까 명시적으로 타입을 적어주어야 한다.
			fe.water();
		}else if(c instanceof Ambulance7) {
			Ambulance7 a = (Ambulance7) c;		//부모 -> 자손 으로 형변환 이니까 명시적으로 타입을 적어주어야 한다.
			a.siren();
		}else {							//c는 FireEngine7과 Ambulance7 로 형변환이 안된다.
			System.out.println("형변환 안됨!");
		}
	}
}

class Car7 {}

class FireEngine7 extends Car7 {
	void water() {		//물 뿌리는 기능..
		System.out.println("물 뿌리기..");
	}
}

class Ambulance7 extends Car7 {
	void siren() {		//사이렌 울리는 기능..
		System.out.println("사이렌 울리기..");
	}
}

출력결과

물 뿌리기..
사이렌 울리기..
형변환 안됨!

0개의 댓글

관련 채용 정보