如何通过接口进行多重继承?

时间:2012-09-29 19:49:18

标签: c# oop

  

可能重复:
  Why is Multiple Inheritance not allowed in Java or C#?

问题: C#是否支持多重继承?

答案:是的,使用界面。

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

所以它看起来是多重继承通过界面 无用。如果我错了,那么通过接口进行多重继承有用吗?

2 个答案:

答案 0 :(得分:5)

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

  • 类继承,您的类继承基类的成员和行为。您只能拥有一个基础,C#不支持多重继承
  • 界面实施,这是表达您的班级履行的合同的一种方式。您可以根据需要实现任意数量的接口。

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

答案 1 :(得分:0)

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

考虑Sort函数的理论DavidW.IComparer接口。泛型排序可以期望支持DavidW.IComparer接口的对象提供两个对象之间的比较。 DavidW.IComparer的实现提供了特定的实现,这些实现定义了两个被排序的对象在消费者的问题域中的关联方式。

接口定义合同,实现者提供文字管道。这就是价值所在。而且,实际上,你并没有“继承”一个界面....