package realization;
public class BoatCarRealApp {
public static void main(String[] args) {
//BoatCarReal boatCarReal=new BoatCarReal();
//클래스가 상속받은 모든 인터페이스로 참조변수를 생성하여 자식클래스의 객체 저장 가능
// => 묵시적 객체 형변환에 의해 오버라이드 선언된 자식클래스의 메소드 호출
// => 인터페이스에 따라 호출 가능한 메소드가 다름
BoatCar boatCar=new BoatCarReal();
//Boat boatCar=new BoatCarReal();
//Car boatCar=new BoatCarReal();
boatCar.floating();
boatCar.navigate();
boatCar.run();
}
}
package realization;
public interface Boat {
void navigate();
}
package realization;
public interface Car {
void run();
}
package realization;
//인터페이스는 다른 인터페이스를 상속받아 작성 가능
// => extends 키워드로 상속받으며 다중 상속 가능
public interface BoatCar extends Boat,Car {
void floating();
}
package realization;
public class BoatCarReal implements BoatCar {
@Override
public void navigate() {
System.out.println("바다를 향해하는 능력");
}
@Override
public void run() {
System.out.println("땅위를 달리는 능력");
}
@Override
public void floating() {
System.out.println("공중에 떠 있는 능력");
}
}