Vis*_*hal 49 abstract-class abstract-methods
我有一些关于抽象类/方法的基本问题.我知道抽象类的基本用法是为将来的类创建模板.但他们有没有更多的用途?什么时候你应该更喜欢它们而不是接口?抽象方法何时有用?
Jus*_*ner 63
我知道抽象类的基本用法是为将来的类创建模板.但他们有没有更多的用途?
您不仅可以为子项定义模板,而且还可以使用抽象类来定义子类可以在以后使用的功能.
您无法为接口提供实现.
什么时候你应该更喜欢它们而不是接口?
如果要为子项提供实现详细信息但不希望允许直接实例化类的实例(这允许您部分定义类),则抽象类非常适合.
如果您只想为要遵循的对象定义合约,请使用接口.
抽象方法何时有用?
抽象方法的用法与在接口中定义方法很有用的方法相同.这是Abstract类的设计者说"我的任何一个孩子必须实现这个方法"的方法.
小智 8
抽象类
- >当你有一个要求,你的基类应该提供某些方法的默认实现,而其他方法应该被子类重写,使用抽象类.
例如,再举一个上面的Vehicle类的例子.如果我们希望从Vehicle派生的所有类以固定方式实现Drive()方法,而其他方法可以被子类重写.在这种情况下,我们将Vehicle类实现为具有Drive实现的抽象类,同时将其他方法/属性保留为抽象,以便它们可以被子类重写.
- >抽象类的目的是提供多个派生类可以共享的基类的通用定义.
例如,类库可以定义一个抽象类,该抽象类用作其许多函数的参数,并要求程序员使用该库通过创建派生类来提供自己的类实现.
使用抽象类
在创建将广泛分发或重用的类库时 - 尤其是对客户端,使用优先于接口的抽象类; 因为,它简化了版本控制.这是开发基类库的Microsoft团队使用的做法.(COM是围绕接口设计的.)使用抽象类为一系列类型定义公共基类.使用抽象类来提供默认行为.子类只是类逻辑上所属的层次结构中的基类.
| 归档时间: |
|
| 查看次数: |
99693 次 |
| 最近记录: |