何时使用抽象类以及何时使用接口

时间:2014-02-19 18:55:25

标签: oop

我有一个与面向对象编程相关的查询。我想知道我什么时候需要使用接口,何时需要使用抽象类?如果有人能用现实世界的例子来解释它,那将是很棒的。

谢谢!

1 个答案:

答案 0 :(得分:0)

选择absract类和接口的方式实际上取决于要求。 当你想要一个'可以(比如说是可选的)'类/类的一部分时,那么选择接口是明智的。 但是当你有一个'应该是(必须)'部分的特征时,它应该来自一个抽象类。

例如: 让我们考虑你正在创建一个类CAR,它应该有一个特征'轮胎'而没有这个属性CAR或任何其他类型的车辆不能完成那么'轮胎'的功能应该在absract基类内进行(让我们说'车辆')。

但是考虑一个可选的属性/功能,如'可转换'可以作为IConvertible接口。因为任何子车辆都可选择具有此功能。

现在正是这样说的,任何像CAR,BIKE这样的类应该从抽象类车辆中获得车辆(轮胎)的特征,同时只有CAR可以从IConvertible派生,因为只有汽车可以拥有该功能

选择界面还为您提供了插件的优势,该插件具有以下功能:您希望通过继承它来实现IConvertible,允许使用多重继承,如.net

希望这会有所帮助......