0

可能重复:
为什么 Java 或 C# 中不允许多重继承?

问: C# 支持多重继承吗?

答:是的,使用接口。

现在我的问题:如果我们继承一个接口,那么我们必须实现它。所以我们正在编写自己的代码,然后我们如何使用继承的核心概念,即通过继承接口实现可重用性。

所以看来通过接口进行多重继承没用的。如果我错了,那么通过接口进行多重继承有什么用?

4

2 回答 2

5

您混淆了两个不同的概念:

  • 类继承,您的类继承基类的成员和行为。基数只能有一个,C#不支持多重继承
  • 接口实现,这是一种表达你的类履行的契约的方式。您可以实现任意数量的接口。

所以如果你期望通过实现一个接口来继承行为,当然这似乎没用……实现一个接口只是告诉别人“嘿,我知道该怎么做(某事)”的一种方式。它不会自动提供那个“东西”的实现,那部分取决于你。

于 2012-09-29T20:02:18.733 回答
0

实现接口是创建一个对象,该对象保证执行特定的功能和方法“契约”,使其可被任何期望实现该接口的对象的方法使用。

考虑 Sort 函数的理论 DavidW.IComparer 接口。通用排序可能需要一个支持 DavidW.IComparer 接口的对象,该接口提供两个对象之间的比较。DavidW.IComparer 的一个实现提供了特定的实现,这些实现定义了被排序的两个对象如何在消费者的问题域中相互关联。

接口定义了一个契约,实现者提供了文字管道。这就是价值所在。而且,实际上,您不会“继承”接口....

于 2012-09-29T19:52:32.200 回答