【问题标题】:why can a class implement multiple interfaces?为什么一个类可以实现多个接口?
【发布时间】:2013-05-24 07:48:34
【问题描述】:

这是关于 oop 中接口的唯一问题,我似乎无法完全解释。那么,为什么在 oop 中一个类可以实现多个接口呢?

如果你能提供一些例子那就太好了。提前致谢。

【问题讨论】:

    标签: class oop inheritance interface implements


    【解决方案1】:

    由于菱形♦ 问题,Java 类不能扩展多个类。 Diamond ♦ 问题是由于构造函数链接而发生的。 Interface 中不存在构造函数,因此如果我们实现多个接口,不会出现菱形♦ 问题。这就是Java类可以实现多个接口的原因。

    【讨论】:

      【解决方案2】:

      接口本质上是抽象的(当然不是根据定义,只是说),因此所有方法都必须在具体的子类中实现,这样我们就可以避免致命的死亡钻石,以一种本身就是允许多个接口实现的答案。

      还有许多其他用途,但由于上述解释,没有任何其他理由限制多重实现的概念......据我所知。

      【讨论】:

        【解决方案3】:

        首先是java不支持多重继承,因此你不能同时扩展两个类。但是,java 支持多个接口的实现。 Mingyu给出的例子对我来说似乎很完美。

        【讨论】:

          【解决方案4】:

          概念示例

          我对多重接口的理解是interface就像动词或形容词,class就像主语。

          老虎可以跑,所以Tiger class可以实现Runnable Interface

          老虎可以吃东西,所以Tiger class可以实现Eatable Interface

          因为类的一个实例可以有不同的行为,我们可以有不同的对应接口。

          现实例子

          java.util Class HashMap<K,V>
          

          它实现了Serializable, Cloneable, Map&lt;K,V&gt;

          所有的接口都是HashMap类的特性。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-04-11
            • 2014-09-16
            • 2014-02-11
            • 1970-01-01
            • 2011-04-24
            • 1970-01-01
            • 2011-11-10
            相关资源
            最近更新 更多