飞的行为接口:
public interface FlyBehavior {
public void fly();
}
飞的行为接口实现类:
public class FlyImpl implements FlyBehavior {
@Override
public void fly() {
System.out.println("I'm flying with a rocket!");
}
}
鸭子抽象类:
public class ModelDuck extends Duck {
public ModelDuck(){
}
@Override
public void performFly() {
super.performFly();
}
@Override
public FlyBehavior getFlyBehavior() {
return super.getFlyBehavior();
}
@Override
public void setFlyBehavior(FlyBehavior flyBehavior) {
super.setFlyBehavior(flyBehavior);
}
@Override
public void swim() {
System.out.println("I'm swimming!");
}
}
模型鸭子类:
public class ModelDuck extends Duck {
public ModelDuck(){
}
@Override
public void performFly() {
super.performFly();
}
@Override
public FlyBehavior getFlyBehavior() {
return super.getFlyBehavior();
}
@Override
public void setFlyBehavior(FlyBehavior flyBehavior) {
super.setFlyBehavior(flyBehavior);
}
@Override
public void swim() {
System.out.println("I'm swimming!");
}
}
运行:
public class Main {
public static void main(String[] agrs){
ModelDuck duck = new ModelDuck();
duck.setFlyBehavior(new FlyImpl());
duck.performFly();
duck.swim();
}
}