为什么java不支持多重继承

Sub*_*hra 6 java

可能重复:
为什么Java中没有多重继承,但允许实现多个接口

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

Alc*_*ive 21

多重继承(Colin和Rin提到)的主要问题是"钻石问题".

我引用:

当两个类B和C继承自A,而D类继承自B和C时,菱形问题就出现了歧义.如果D中的方法调用A中定义的方法(并且不重写方法),则B和C以不同的方式覆盖了该方法,然后从哪个类继承:B或C?


Col*_*ert 15

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

当然存在解决方案(例如在C++中),但Java的创建者认为它是复杂的方式而不是Java哲学(使开发更容易).

来自sun.com:

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


资源:


归档时间:

查看次数:

36209 次

最近记录:

15 年,2 月 前