// [7-18]
//----------------나의 답안--------------------------- // 작동 안함..ㅋㅋㅋㅋㅋㅋㅋ
class Exercise7_18 {
// Exercise7_18.java:10: error: cannot find symbol 이거 뜸.ㅋㅋ
// location: variable r of type Robot
public static void action (Robot r) {
if(r instanceof DanceRobot)
r.dance();
else if(r instanceof SingRobot)
r.sing();
else if(r instanceof DrawRobot)
r.draw();
}
//-----------------모범 답안--------------------------
/*
public static void action(Robot r) {
if(r instanceof DanceRobot) {
DanceRobot dr = (DanceRobot)r;
// Robot 형태니까 형변환을 해서 해당 클레스의 메서드를 사용할 수 있도록 해줘야 한다.
dr.dance();
} else if(r instanceof SingRobot) {
SingRobot sr = (SingRobot)r;
sr.sing();
} else 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 (int i=0; i < arr.length; i++) {
action(arr[i]);
}
}
}
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("그림을 그립니다.");
}
}
//-----------------------------------------------------
댓글 없음:
댓글 쓰기