接口与抽象类

这个问题在这里已经有了答案:

  • 在设计C#类库时,我应该在接口上选择继承吗? 6个答案
  • 接口与基类39答案

  • 抽象类的优点是:

  • 能够指定方法的默认实现
  • 增加了对函数的不变检查
  • 对“接口”方法的调用稍微有点控制
  • 能够提供与“免费”界面相关或不相关的行为
  • 接口仅仅是数据传递合同,并没有这些功能。 但是,它们通常更灵活,因为类型只能从一个类派生,但可以实现任意数量的接口。


    抽象类和接口在语义上是不同的,尽管它们的用法可能会重叠。

    抽象类通常被用作类似类的构建基础。 类的常见实现可以放在抽象类中。

    接口通常用于指定类的能力,类不一定非常相似。


    另一件需要考虑的事情是,由于没有多重继承,如果你希望一个类能够实现/从你的接口/抽象类继承,但是从另一个基类继承,那就使用一个接口。

    链接地址: http://www.djcxy.com/p/38139.html

    上一篇: Interfaces vs. abstract classes

    下一篇: When to use an interface instead of an abstract class and vice versa?