抽象类与接口建议

   抽象类型和接口是用于指定编程抽象的两种机制。抽象指定继承者或实施者必须遵循的一个协定。抽象类型可以选择提供实现的详细信息;而接口不能提供实现的任何详细信息。

  • 类可能只是从一个基类继承,所以如果要使用抽象类为一组类提供多态性,这些类必须都是从那个类继承的。
  • 抽象类还可能提供已实现的成员。因此,可以用抽象类确保特定数量的相同功能,但不能用接口这样做。

这里是一些建议,帮助您决定使用接口还是抽象类为组件提供多态性。

  • 如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单易行的方法来控制组件版本。通过更新基类,所有继承类都随更改自动更新。另一方面,接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口。
  • 如果创建的功能将在大范围的全异对象间使用,则使用接口。抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。
  • 如果要设计小而简练的功能块,则使用接口。如果要设计大的功能单元,则使用抽象类。
  • 如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。抽象类允许部分实现类,而接口不包含任何成员的实现。

参考:http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vbcon/html/vbconabstractclassesversusinterfaces.asp

posted on 2007-12-15 15:34  老杨的地盘  阅读(165)  评论(0编辑  收藏  举报