When to use abstract classes and when to use interfaces in C#
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicates:
Abstract classes vs Interfaces
Interface vs Base class
你好,
在C中,什么时候应该使用接口,什么时候应该使用抽象类?请举例说明
抽象类,如果要实现基本功能和一些必须由实现者覆盖的属性/方法:
1 2 3 4 5 6 7 8 | public abstract class Entity { public int Id { get; set;} public bool IsNew { get { return Id == 0; } } public abstract DoSomething(int id); // must be implemented by concrete class } |
接口,如果要定义类必须包含哪些属性/方法,而不实现任何功能:
1 2 3 4 5 | public interface IRepository { object Get(int id); IEnumerable<object> GetAll(); } |
在描述契约时使用接口,在实现将在派生类之间共享的功能时使用抽象类。
使用的例子可以是模板模式和策略模式