类型设计准则篇--在类和接口之间选择
接口定义实施者必须提供的一组成员的签名。接口不能提供成员的实现细节。例如,
类定义每个成员的成员签名和实现细节。Abstract(在 Visual Basic 中为 MustInherit)类的行为在某方面与接口或普通类相同,即可以定义成员,可以提供实现细节,但并不要求一定这样做。如果抽象类不提供实现细节,从该抽象类继承的具体类就需要提供实现。
虽然抽象类和接口都支持将协定与实现分离开来,但接口不能指定以后版本中的新成员,而抽象类可以根据需要添加成员以支持更多功能。
优先考虑定义类,而不是接口。
在库的以后版本中,可以安全地向类添加新成员,如以实现的方法,属性等;而对于接口,则只有修改现有代码才能添加成员。
请使用抽象(在 Visual Basic 中为 MustInherit)类,而不要使用接口来分离协定与实现。
如果需要提供多态层次结构的值类型,则应定义接口。
值类型必须从
请考虑定义接口来达到类似于多重继承的效果。
如果一个类型必须实现多个协定,或者协定适用于多种类型,请使用接口,因为类型只能继承一个父类,但可以实现多个接口。例如,
浙公网安备 33010602011771号