interface FlyBehavior {
    public void fly();
}

class SubSonicFly implements FlyBehavior {
    public void fly() { System.out.println("亚音速飞行！"); }
}

class SuperSonicFly implements FlyBehavior {
    public void fly() { System.out.println("超音速飞行！"); }
}

interface TakeOffBehavior {
    public void takeOff();
}

class VerticalTakeOff implements TakeOffBehavior {
    public void takeOff () { System.out.println("垂直起飞！"); }
}

class LongDistanceTakeOff implements TakeOffBehavior {
    public void takeOff() { System.out.println("长距离起飞！"); }
}

abstract class AirCraft {
    protected (1);
    protected (2);
    public void fly() { (3) ; }
    public void takeOff() { (4) ; };
}
class Helicopter (5) AirCraft{
public Helicopter () {
    flyBehavior = new (6);
    takeOffBehavior = new (7);
    }
}
// 其它代码省略
