为什么Java不支持多重继承,尽管所有java方法默认都是虚拟的?为什么Java中会出现钻石问题?
问问题
2299 次
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 回答