【问题标题】:why java does not support multiple inheritance [duplicate]为什么java不支持多重继承[重复]
【发布时间】:2011-04-15 15:33:56
【问题描述】:

可能重复:
Why there is no multiple inheritance in Java, but implementing multiple interfaces is allowed

大家好,我是java新手,当我尝试在java中使用多重继承概念时,它显示编译时错误。为什么java不支持它。我听说过接口关键字但是 不知道为什么java直接支持它。请帮我解释一下。

【问题讨论】:

标签: java


【解决方案1】:

众所周知,多重继承的主要问题是The Diamond Problem

我引用:

钻石问题是一个模棱两可的问题 当两个类别 B 和 C 从A继承,D类继承 来自 B 和 C。如果 D 中的方法 调用 A 中定义的方法(并且确实 不覆盖该方法),以及 B 和 C 已覆盖该方法 不同,然后从哪个班级 它继承:B 还是 C?

【讨论】:

  • 很好解释.....+1.
【解决方案2】:

多重继承真的很难理解。当你有两个具有冲突方法的类的多重继承时,你如何处理这个?

当然存在解决方案(例如在 C++ 中),但 Java 的创建者认为这太复杂了,而不是真正符合 Java 哲学(使开发更容易)。

来自 sun.com:

多重继承——以及它产生的所有问题——被Java抛弃了。多重继承的理想特性由接口提供——在概念上类似于 Objective C 协议。
接口不是类的定义。相反,它是一个或多个类将实现的一组方法的定义。接口的一个重要问题是它们只声明方法和常量。变量不能在接口中定义。


资源:

【讨论】:

    【解决方案3】:

    因为它很难使用。相反,Java 有 interface 什么是更好的解决方案。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2014-03-04
      • 2011-02-21
      • 2011-03-17
      • 1970-01-01
      • 2011-03-24
      • 2015-11-11
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多