본문 바로가기

Java

인터페이스 ( interface ) 고찰

1. 인터페이스를 통한 동물 경주 게임 설계 해보기

여기에 거북이, 토끼 클래스가 존재한다. 어느 날 둘이 경주 게임에 참가하고자 합의를 했다. 단, 참가를 하기 위해서는 본인에 이름과 경주 속도를 알려주는 장치를 달아야 중개가(일종의 스펙) 가능하다. 이 상황을 코드로 작성해 보자.

package basic.ch22;

public class Rabbit implements RacePaticipant{
	
	private final int speed = 10;

	@Override
	public String getName() {
		return "엉금엉금 토끼";
	}

	@Override
	public int getSpeed() {
		return speed;
	}

}
package basic.ch22;

public interface RacePaticipant {
	
	String getName();
	int getSpeed();

}
package basic.ch22;

public class Turtle implements RacePaticipant{
	
	private final int speed = 2;

	@Override
	public String getName() {
		return "깡총깡총 거북이";
	}

	@Override
	public int getSpeed() {
		return speed;
	}
	
}

 

2. 연극에 로미오라는 역할 그리고 배우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 + "이 연극을 합니다." );
	}
	
}

 

728x90

'Java' 카테고리의 다른 글

String, StringBuffer 클래스  (0) 2024.05.01
Object 클래스와 equals 메서드  (0) 2024.04.25
인터페이스 ( interface )  (0) 2024.04.25
다형성 ( Polymorphism )  (0) 2024.04.24
의존 관계 ( Dependency )  (0) 2024.04.24