为什么java没有';尽管默认情况下所有的java方法都是虚拟的,但它不支持多重继承吗?

为什么java没有';尽管默认情况下所有的java方法都是虚拟的,但它不支持多重继承吗?,java,diamond-problem,Java,Diamond Problem,尽管默认情况下所有Java方法都是虚拟的,但为什么Java不支持多重继承?为什么钻石问题会出现在Java中?钻石问题不会出现在Java中,因为它不可能出现多重继承。我认为限制多重继承编程和降低复杂性所导致的开发错误是sun的任意决定。(被称为Java之父)说: 省略了C++中许多很少使用、理解不好、混淆的特性。 经验带来的悲伤多于益处。这主要包括运算符重载 (尽管它确实有方法重载),多重继承,以及广泛的自动 胁迫 参考: 因此,据他说,他们只是不想添加它,因为他们认为这是一个坏主意 另外,使用多

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

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

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

(被称为Java之父)说:

省略了C++中许多很少使用、理解不好、混淆的特性。 经验带来的悲伤多于益处。这主要包括运算符重载 (尽管它确实有方法重载),多重继承,以及广泛的自动 胁迫

参考:

因此,据他说,他们只是不想添加它,因为他们认为这是一个坏主意


另外,使用多个接口与多重继承不同。

因为接口比具体类更灵活,我们可以选择使用单个类实现多个接口。根据协议,我们将按照两个蓝图创建一个类。让我们看看java的漂亮定义:

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

同样,java中不可能出现钻石问题,因为它不支持多重继承。

只有Sun Microsystems的人员才能回答这个问题。删除多重继承以消除复杂性的想法..多重继承的问题之一是名称冲突,它与默认的虚拟方法无关。正如TJ的补充:不要混淆虚拟方法和C++虚拟继承。是的,这就是钻石问题,因此问题。