(声明一个车(vehicle)基类,具有MaxSpeed、Weight整型成员变量,Run、Stop成员函数,由其派生出自行车(bicycle)、汽车(motorcar)类。自行车(bicycle)具有高度(Height)属性,汽车(motorcar)具有座位数(SeatNum)属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类,为什么?如果不设置为虚基类,会有什么问题?请注意记录,并作出结论。

解决方案 »

  1.   

    作业???应该是说将vehicle申明为抽象类把
    那么就会要求继承vehicle的子类 必须 实现抽象函数和抽象属性
      

  2.   

    virtual
    因为二义性所以无法确定
    那怎么写?
      

  3.   

    为什么c++就能
    class x:virtual y
    来定义虚基类
    那c#要怎么写?
      

  4.   

    还是再补充一下
    就是各个子类必须各自实现vehicle的抽象函数和抽象属性
    不这样做的话 单单使用继承
    那么Run都是继承的 就会出现自行车跑得和汽车一样快了
      

  5.   

    原来说的是virtual
    意思是说 子类可以选择是否重写父类的函数
    原因不这样做的话 单单使用继承
    那么Run都是继承的 就会出现自行车跑得和汽车一样快了C++ 就不知道了
      

  6.   

    虚方法由关键字abstract定义。
    含有抽象方法的类一定是抽象类。
    抽象类不能被实例化,不能标记为static,因为static 为sealed,sealed不能被继承。
    继承抽象类的非抽象子类一定要实现抽象类中未实现的抽象方法。
      

  7.   

    抽象类 抽象方法 ,RUN不用虚方法(virtual),因为在基类中完全不用实现。所以用抽象方法(abstract)啦。由各继承类各自实现。