-추상클래스의 하위 클래스는 하나의 추상 클래스만 상속받을 수 있지만 인터페이스의 하위 클래스들은 여러개의 인터페이스를 받아 사용할 수 있다.
Robot r1 = new Robot();
r1.setWing(new Wing01());
r1.flying();
interface Wing{
public void fly(); // abstract 생략
}
class Wing01 implements Wing{ // 인터페이스를 구현
@Override
public void fly() {
System.out.println("날개1호를 통해서 우리 동네를 날다!");
}
}
class Wing02 implements Wing{ // 인터페이스를 구현
@Override
public void fly() {
System.out.println("날개2호를 통해서 전세계를 누비다!");
}
}
class Robot{
privatd Wing wing; // 인터페이스를 필드로 사용
private void setWing(Wing wing){
this.wing = wing;
}
public void flying(){
if(this.wing!=null){
this.wing.fly();
// 실제 객체가 할당되었을 때, 하위 객체가 override한 내용을 처리
}else {
System.out.println("날개가 장착되지 않았습니다.");
}
}
}