阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。 为支持将来模拟更多种类的飞机,

admin2011-01-29  30

问题 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。

为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图6-l所示。

    图5-11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly( )和takeOff( )分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类Verti—calTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
【Java代码】
  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)  ;
    }
    };
    //其它代码省略

选项

答案(I)FlyBehavior flyBehavior (2)TakeOffBehavior takeOffBehavior (3)flyBehavior.fly( ) (4)takeOffBehavior.takeOff( ) (5)extends (6)SuperSonicFiy( ) (7)VerticalTakeOff( )

解析 Helicopter类继承AirCraft类,fly行为实现FlyBehavior接口,takeOff行为实现TakeOffBehavior接口。
    因为AirCraft类没有实现fly( )和takeOff( )行为,故空(1)空(2)应填FlyBehavior flyBehavior和TakeOffBehavior takeOffBehavior。
    空(3)要实现fly行为故调用对象flyBehavior.fly( ),同理空(4)要实现takeOffBehavior行为故调用takeOffBehavior.takeOff( )。
    空(5)因为Helicoptel"继承自AirCraft所以要填写关键字extends。
    空(6)空(7)考查多态调用,因为Helicopter类为垂直起飞和亚音速飞行,故应分别SuperSonicFly( )和VerticalTakeOff( )。
转载请注明原文地址:https://kaotiyun.com/show/iqDZ777K
0

相关试题推荐
最新回复(0)