关于C#:如何选择抽象类或接口..

How can i choose Abstract class or Interface..?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
Interface vs Base class
Abstract classes vs Interfaces

我们如何决定何时必须使用接口和何时使用抽象类….??

有什么主意吗??

提前感谢!


是否要提供方法的共享实现?

使用抽象类。

您是否只想提供一个约定来指定对象必须提供什么外部功能?

使用接口。


我的经验法则是:当有共享代码时使用抽象类,否则使用接口。


看看这篇有趣的文章,它将帮助您理解代码项目上接口和抽象类之间的区别。


如果计划对部分方法和属性使用相同的实现,则使用抽象类;如果只想在所有类中保留相同的成员,但对所有类使用不同的实现,则使用接口。

换句话说,如果派生类中的某些方法在每个派生类中都应该完全相同,则使用interface,否则使用interface。