(声明一个车(vehicle)基类,具有MaxSpeed、Weight整型成员变量,Run、Stop成员函数,由其派生出自行车(bicycle)、汽车(motorcar)类。自行车(bicycle)具有高度(Height)属性,汽车(motorcar)具有座位数(SeatNum)属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类,为什么?如果不设置为虚基类,会有什么问题?请注意记录,并作出结论。
调试欢乐多
那么就会要求继承vehicle的子类 必须 实现抽象函数和抽象属性
因为二义性所以无法确定
那怎么写?
class x:virtual y
来定义虚基类
那c#要怎么写?
就是各个子类必须各自实现vehicle的抽象函数和抽象属性
不这样做的话 单单使用继承
那么Run都是继承的 就会出现自行车跑得和汽车一样快了
意思是说 子类可以选择是否重写父类的函数
原因不这样做的话 单单使用继承
那么Run都是继承的 就会出现自行车跑得和汽车一样快了C++ 就不知道了
含有抽象方法的类一定是抽象类。
抽象类不能被实例化,不能标记为static,因为static 为sealed,sealed不能被继承。
继承抽象类的非抽象子类一定要实现抽象类中未实现的抽象方法。