표현하고 싶은 부분은 display() 추상 메서드 => 나머지를 모두 지워도 됨.
참고로 인터페이스 표시는 메서드 부분만 표시(어트리뷰트가 존재하지 않음).
package duck;
import flyInterface.QuackBehavior;
import quackInterface.FlyBehavior;
public abstract class Duck {
FlyBehavior flyBehavior;
QuackBehavior quackBehavior;
public Duck() {
}
public void setFlyBehavior(FlyBehavior fb) {
flyBehavior = fb;
}
public void setQuackBehavior(QuackBehavior qb) {
quackBehavior = qb;
}
abstract void display();
public void performFly() {
flyBehavior.fly();
}
public void performQuack() {
quackBehavior.quack();
}
public void swim() {
System.out.println("All ducks float, even decoys!");
}
}