【发布时间】:2011-06-25 01:55:56
【问题描述】:
可能的重复:
interface and abstract class.
Abstract classes vs Interfaces
谁能告诉我什么时候应该使用抽象类,什么时候应该使用带有示例场景的接口?
【问题讨论】:
可能的重复:
interface and abstract class.
Abstract classes vs Interfaces
谁能告诉我什么时候应该使用抽象类,什么时候应该使用带有示例场景的接口?
【问题讨论】:
如果您要定义行为(如IEnumerable,因为List 的作用类似于IEnumerable),则使用接口,但如果您要定义对象(IS-A)关系的种类,使用抽象类(如Stream -- 因为MemoryStream IS-A Stream)。
【讨论】:
如果需要提供基本实现,则应使用抽象类。
否则,使用接口。
【讨论】:
如果您想提供一个方法/一组方法的实现,但不希望人们直接实例化您的父类,请使用抽象类。
如果您想定义类必须接口的成员,但不提供任何实现,请使用接口。
【讨论】: