虚方法:
--- 用virtual修饰
---要有方法体
---可以被子类override重写
---除了密封类以外都可以重写
抽象类:
---用abstract修饰
---不允许有方法体
--- 所有抽象成员必须被子类override重写
---抽象成员只能存在于抽象类中
注意:抽象类,接口,静态成员不允许实例化
可是什么时候用虚方法,什么时候用抽象类呢?
我认为如果像人,中国人,美国人这样可以提取出来父类的话,用虚方法就可以,因为人类有的中国人,美国人都有。虚方法可以由程序员来控制是否覆盖重写。
而当碰上猫,狗的叫声之类的问题时,首先猫跟狗的叫声就不一样。我们就要从这两个类中提取个父类动物类,但是动物类的叫声有很多种,这种情况下我们可以把动物的叫声做成抽象方法,但是抽象由于抽象成员只能存在于抽象类中,所以我们把动物这个类就抽象化了。
---------------额,文笔不咋地,各位见谅啊~~
|