【问题标题】:Is interface can achieve multiple inheritance in c#.net?Explain with example if possible . [closed]c#.net中接口是否可以实现多重继承?如果可能,请举例说明。 [关闭]
【发布时间】:2011-08-24 11:08:01
【问题描述】:

书上说通过接口可以实现多个接口,是真是假?

因为在接口中我们只定义方法而不是逻辑,但在继承中我们访问方法及其内部的逻辑。这在接口中是不可能的,我们必须在派生类中编写接口方法逻辑,我不想这样做。如何在 C#.net 中实现多重继承?

【问题讨论】:

标签: c# interface multiple-inheritance


【解决方案1】:

这不是多重继承,因为您只是在实现接口时“继承”合同。您不会继承任何行为(如果您说“多重继承”,您可能是指这个意思)。

一个简短的例子:

public class MyClass : IComparable<MyClass>, IDisposable
{
    // Implement members from both interfaces.
    ...
}

MyClass 类的行为既像 IComparable&lt;MyClass&gt;,又像 IDisposable

【讨论】:

  • +1,或者如果方法主体相同,您可以使用接口上定义的扩展方法,而不是在每个类中复制代码。
  • 多重继承是指通过派生类对象继承两个或多个基类的属性和逻辑。
【解决方案2】:

c# 不支持多重继承。

Multiple Inheritance in C#

看上面的链接你就清楚了。

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 2015-12-23
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多