💡 학습 목표
|
1. 인터페이스를 통한 동물 경주 게임 설계 해보기
여기에 거북이, 토끼 클래스가 존재합니다. 어느 날 둘이 경주 게임에 참가하자고 합의를 하였습니다. 단, 참가를 하기 위해서는 본인에 이름과 경주 속도를 알려주는 장치를 달아야 중개가(일종에 스펙) 가능하다고 합니다. 이 상황을 코드로 작성해 봅시다.
package basic.ch22;
public interface RaceParticipant {
String getName();
int getSpeed();
}
package basic.ch22;
public class Turtle implements RaceParticipant {
private final int speed = 2;
@Override
public String getName() {
return "용왕 의자출신 거북이";
}
@Override
public int getSpeed() {
return speed;
}
}
package basic.ch22;
public class Rabbit implements RaceParticipant {
private final int speed = 10;
@Override
public String getName() {
return "허위 간 매물 토끼";
}
@Override
public int getSpeed() {
return speed;
}
}
3. 연극에 로미오라는 역할 그리고 배우1과 배우2
더블 캐스팅(Double Casting) : 주연 역할을 두 명의 배우가 번갈아 가며 연기하여, 공연의 부담을 분담하거나 다양한 해석을 관객에게 제공할 수 있는 장점이 있습니다.
package basic.ch22;
public interface Romeo {
void performAsRomeo();
}
package basic.ch22;
public class Actor implements Romeo {
String name;
public Actor(String name) {
this.name = name;
}
@Override
public void performAsRomeo() {
System.out.println(name + " 가 오호 ~ 줄리엣 연극합니다");
}
}
package basic.ch22;
public class Student implements Romeo {
String name;
public Student(String name) {
this.name = name;
}
@Override
public void performAsRomeo() {
System.out.println("학교 축제에서 " + name + " 이 연극을 합니다");
}
}
package basic.ch22;
public class RomeoTest {
public static void main(String[] args) {
Actor actor = new Actor("황정민");
actor.performAsRomeo();
Student student = new Student("배우 지망생"); // 다형성 코드의 유연함
student.performAsRomeo();
} // end of main
} // end of class
'Java > JAVA 2 - 객체지향 핵심' 카테고리의 다른 글
JAVA 2 - 인터페이스 활용 (0) | 2024.04.26 |
---|---|
JAVA 2 - 중요한! 인터페이스(interface) (0) | 2024.04.25 |
JAVA 2 - 추상클래스(abstract class) (0) | 2024.04.24 |
JAVA 2 - 다형성(Polymorphism)의 활용 (0) | 2024.04.24 |
JAVA 2 - 다형성(Polymorphism) (0) | 2024.04.24 |