[디자인패턴 수업 3주차 1차시] Duck Class (추상 클래스 & 인터페이스)

Jin Hur·2021년 9월 14일
0
post-custom-banner


표현하고 싶은 부분은 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!");
    }
}
post-custom-banner

0개의 댓글