java - extends 예제

imjingu·2023년 8월 23일
0

개발공부

목록 보기
409/481
package chapter20230823;

class Robot {}

class DanceRobot extends Robot {
	void dance() {
		System.out.println("춤을 춥니다.");
	}
}

class SingRobot extends Robot {
	void sing() {
		System.out.println("노래를 합니다.");
	}
}

class DrawRobot extends Robot {
	void draw() {
		System.out.println("그림을 그립니다.");
	}
}

public class test04 {
/*
 (1) instanceof를 사용해서 객체의 타입에 맞는 메서드가 실행되는 action메서드를 작성하시오
 */
	public static void action(Robot r) { // 공통적으로 상속받은 부모클래스가 Robot이기 때문에 Robot들고옴
		if(r instanceof DanceRobot) { // r 이 DanceRobot의 객체인가
			DanceRobot dr = (DanceRobot)r; // 부모타입에서 자식타입으로 대입할 때는 명시적 형변환
			dr.dance();
		};
		
		if(r instanceof SingRobot) {
			SingRobot sr = (SingRobot)r;
			sr.sing();
		};
		
		if(r instanceof DrawRobot) {
			DrawRobot dr = (DrawRobot)r;
			dr.draw();
		};
	}
	public static void main(String[] args) {
		Robot[] arr = { new DanceRobot(), new SingRobot(), new DrawRobot()};
		
		for (Robot robot : arr) {
			action(robot);
		}

	}

}

0개의 댓글