【问题标题】:Can Interfaces be a substitute for Multiple Inheritance in C#? [duplicate]接口可以替代 C# 中的多重继承吗? [复制]
【发布时间】:2010-10-09 09:55:19
【问题描述】:

【问题讨论】:

    标签: c#


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        例如,

        public class TradeReport : IReport, ITrade, IComplianceRecord
        

        只要上面的类有意义地实现了所有三个接口的方法,你就可以用它来描述一个报告、一个交易和一个合规记录。

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

        【讨论】:

          猜你喜欢
          • 2023-03-06
          • 1970-01-01
          • 2014-10-06
          • 2011-04-29
          • 2013-02-07
          • 1970-01-01
          • 2015-04-12
          • 2015-11-24
          • 2014-12-31
          相关资源
          最近更新 更多