C# 通过接口的多重继承如何有用?
可能重复:C# 通过接口的多重继承如何有用?,c#,oop,C#,Oop,可能重复: 问题:C#支持多重继承吗?回答:是的,使用接口 现在我的问题是:如果我们继承了一个接口,那么我们必须实现它。因此,我们正在编写自己的代码,然后我们如何使用继承的核心概念,即通过继承接口的可重用性。因此,通过接口的多重继承似乎是无用的。如果我错了,那么通过接口的多重继承有什么用处呢?实现接口就是创建一个对象,该对象保证按照特定的函数和方法“契约”执行,使它可以被任何期望实现该接口的对象的方法使用 考虑排序函数的理论DavidW.IComparer接口。泛型排序可能需要一个支持Davi
问题:C#支持多重继承吗?
回答:是的,使用接口
现在我的问题是:如果我们继承了一个接口,那么我们必须实现它。因此,我们正在编写自己的代码,然后我们如何使用继承的核心概念,即通过继承接口的可重用性。
因此,通过接口的多重继承似乎是无用的。如果我错了,那么通过接口的多重继承有什么用处呢?实现接口就是创建一个对象,该对象保证按照特定的函数和方法“契约”执行,使它可以被任何期望实现该接口的对象的方法使用 考虑排序函数的理论DavidW.IComparer接口。泛型排序可能需要一个支持DavidW.IComparer接口的对象,该接口提供两个对象之间的比较。DavidW.IComparer的一个实现提供了特定的实现,这些实现定义了正在排序的两个对象在消费者问题域中的关系
接口定义合同,实现者提供文字管道。这就是价值所在。而且,实际上,您不会“继承”一个接口….实现一个接口就是创建一个对象,该对象保证按照特定的函数和方法“契约”执行,使其可由任何期望实现该接口的对象的方法使用 考虑排序函数的理论DavidW.IComparer接口。泛型排序可能需要一个支持DavidW.IComparer接口的对象,该接口提供两个对象之间的比较。DavidW.IComparer的一个实现提供了特定的实现,这些实现定义了正在排序的两个对象在消费者问题域中的关系
接口定义合同,实现者提供文字管道。这就是价值所在。而且,实际上,您并没有“继承”接口….您混淆了两个不同的概念:
- 类继承,其中类继承基类的成员和行为。您只能有一个基,C#不支持多重继承
- 接口实现,这是一种表示类所履行契约的方式。您可以实现任意数量的接口
所以,如果您希望通过实现接口来继承行为,那么它显然是无用的。。。实现一个接口只是告诉别人“嘿,我知道怎么做(某事)”的一种方式。它不会自动提供“某物”的实现,这一部分取决于您。您混淆了两个不同的概念:
- 类继承,其中类继承基类的成员和行为。您只能有一个基,C#不支持多重继承
- 接口实现,这是一种表示类所履行契约的方式。您可以实现任意数量的接口
所以,如果您希望通过实现接口来继承行为,那么它显然是无用的。。。实现一个接口只是告诉别人“嘿,我知道怎么做(某事)”的一种方式。它不会自动提供“某物”的实现,这部分由您决定。实现多个接口不是多重继承。所以不,C#不支持多重继承。您不继承接口,而是实现它。您的问题与实现多个接口有什么关系?看来你的问题首先是关于实现接口(即使只是一个)的目的,而不是具体实现其中的几个。@Thomaslevsque我的问题很简单,使用接口的多重继承如何有用?@Rasa,它没有用,因为它不存在。。。实现多个接口与多重继承无关。@ThomasLevesque-接口通常被描述为多重继承的“轻量级”形式。当然不是这样,但它满足了一些要求,最明显的是替代原则。实现多个接口不是多重继承。所以不,C#不支持多重继承。您不继承接口,而是实现它。您的问题与实现多个接口有什么关系?看来你的问题首先是关于实现接口(即使只是一个)的目的,而不是具体实现其中的几个。@Thomaslevsque我的问题很简单,使用接口的多重继承如何有用?@Rasa,它没有用,因为它不存在。。。实现多个接口与多重继承无关。@ThomasLevesque-接口通常被描述为多重继承的“轻量级”形式。当然不是这样,但它满足了一些要求,最明显的是替代原则。
IComparer
不是理论性的。使用IComparable
@nneonneo:本答案中提到的icomparaler
接口是理论性的。在讨论中的示例上下文中是理论性的。拜托,我知道,但他所指的界面确实存在。不,我没有因此而否决他。所以,如果我说,比如说,“IComparerizer”,我也不会否决他。IComparer
不是理论性的。使用IComparable
@nneonneo:本答案中提到的icomparaler
接口是理论性的。在讨论中的示例上下文中是理论性的。拜托,我知道,但他所指的界面确实存在。不,我没有因此而否决他。所以,如果我说,比如说,“我的比较者”,也不会否决他。谢谢你澄清了我的误解