ric*_*ard 137
当您需要一个类来实现继承和多态时,抽象类很有用,但实例化类本身,只有它的子类是没有意义的.当您想要为一组共享一些常见实现代码的子类定义模板时,通常会使用它们,但您也希望保证不能创建超类的对象.
例如,假设您需要创建Dog,Cat,Hamster和Fish对象.它们具有类似的属性,如颜色,大小和腿数以及行为,因此您可以创建一个Animal超类.但是,什么颜色的动物?Animal对象有多少条腿?在这种情况下,实例化Animal类型的对象而不仅仅是它的子类没有多大意义.
抽象类在多态中也有额外的好处 - 允许您使用(抽象)超类的类型作为方法参数或返回类型.例如,如果你有一个带有train()方法的PetOwner类,你可以将它定义为接受Animal类型的对象,例如train(Animal a),而不是为Animal的每个子类型创建一个方法.
| 归档时间: |
|
| 查看次数: |
59134 次 |
| 最近记录: |