0

为什么Java不支持多重继承,尽管所有java方法默认都是虚拟的?为什么Java中会出现钻石问题?

4

4 回答 4

5

James Gosling(被称为 Java 之父)说:

JAVA 省略了 C++ 中许多很少使用、难以理解、令人困惑的特性,根据我们的经验,这些特性带来的痛苦多于好处。这主要包括运算符重载(尽管它确实有方法重载)、多重继承和广泛的自动强制。

参考:http: //javapapers.com/core-java/why-multiple-inheritance-is-not-supported-in-java/

所以据他说,他们根本不想添加它,因为他们认为这是一个坏主意。

PS 使用多个接口与多重继承不同。

于 2013-10-25T09:20:29.600 回答
2

Java中不会出现钻石问题,因为它不可能有多重继承。

于 2013-10-25T09:16:58.210 回答
0

我认为限制多重继承编程和消除复杂性导致的开发错误是 sun 的任意决定

于 2013-10-25T09:17:16.773 回答
0

因为接口比具体类提供了灵活性,我们可以选择使用单个类实现多个接口。这是我们一致同意的两个蓝图来创建一个类。让我们看看 java 的漂​​亮定义:

JAVA: A simple, object oriented, distributed, interpreted, robust, secure, 
architecture   neutral, portable, high performance, multithreaded, 
dynamic language.

同样,Java 中也不可能出现Diamond 问题,因为它不支持多重继承。

于 2013-10-25T09:30:19.623 回答