接口可以替代C#中的多重继承吗?

时间:2009-02-23 20:19:48

标签: c#

3 个答案:

答案 0 :(得分:2)

多重继承意味着您从多个基类继承功能。由于接口定义了接口而不是实现,因此答案是否定的。

答案 1 :(得分:1)

在某种程度上,是的。继承提供的经典“is-a”关系可以通过使用接口来扩展。意思是,如果一个类继承自另一个类并实现3个接口,则可以将此类的对象传递给一个方法,该方法将基类或三个接口中的任何一个作为参数。因此,从某种意义上说,这个类是“4个不同的东西之一”。有意义吗?

答案 2 :(得分:0)

从概念上讲,接口可以允许您与其他类别的类具有多个is-a关系。这是使用多重继承的部分原因。

例如,

public class TradeReport : IReport, ITrade, IComplianceRecord

如果上面的类有意义地实现了所有三个接口的方法,您可以使用它来描述报告,交易和合规记录。

但是,这是极限。接口中没有实现继承。