Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中何时使用抽象类和何时使用接口#_C#_Oop - Fatal编程技术网

C# 在c中何时使用抽象类和何时使用接口#

C# 在c中何时使用抽象类和何时使用接口#,c#,oop,C#,Oop,可能的重复项: 有人能告诉我什么时候应该使用抽象类,什么时候应该使用带有示例场景的接口吗?如果需要提供基本实现,应该使用抽象类 否则,请使用接口。如果您希望提供方法/方法集的实现,但不希望人们直接实例化父类,请使用抽象类 如果要定义类必须接口的成员,但不提供任何实现,请使用接口。如果要定义行为(如IEnumerable,因为列表的行为类似于IEnumerable),则使用接口,但如果要定义一种对象(IS-a)关系,使用一个抽象类(比如流——因为内存流是一个流)。请参阅:这里有很多重复项。无论

可能的重复项:


有人能告诉我什么时候应该使用抽象类,什么时候应该使用带有示例场景的接口吗?

如果需要提供基本实现,应该使用抽象类


否则,请使用接口。

如果您希望提供方法/方法集的实现,但不希望人们直接实例化父类,请使用抽象类


如果要定义类必须接口的成员,但不提供任何实现,请使用接口。

如果要定义行为(如
IEnumerable
,因为
列表的行为类似于
IEnumerable
),则使用接口,但如果要定义一种对象(IS-a)关系,使用一个抽象类(比如
——因为
内存流
是一个
)。

请参阅:这里有很多重复项。无论如何,这是一个直截了当的好答案。