可能重复:
Why there is no multiple inheritance in Java, but implementing multiple interfaces is allowed
大家好,我是java新手,当我尝试在java中使用多继承概念时,它显示编译时错误。为什么java不支持它。我听说过关键字但是 不知道为什么java直接支持它。请帮我解释一下。
答案 0 :(得分:21)
多重继承(Colin和Rin提到)的主要问题是The Diamond Problem。
我引用:
钻石问题含糊不清 当两个B和C类出现时 继承自A,D类继承 来自B和C两者。如果是D中的方法 调用A中定义的方法(并且确实如此) 不要覆盖方法),以及B和C. 已经覆盖了那个方法 不同的是,然后从哪个班级 它继承了:B还是C?
答案 1 :(得分:15)
多重继承可能真的很难理解。当你有两个具有冲突方法的类的多继承时,你如何处理它?</ p>
当然存在解决方案(例如在C ++中),但Java的创建者认为它是复杂的方式而不是Java哲学(使开发变得更容易)。
来自sun.com:
多重继承 - 以及它生成的所有问题 - 都是从Java中丢弃的。多重继承的理想特性由接口提供 - 概念上类似于Objective C协议 接口不是类的定义。相反,它是一个或多个类将实现的一组方法的定义。接口的一个重要问题是它们只声明方法和常量。可能未在接口中定义变量。
资源:
答案 2 :(得分:1)
因为,很难使用它。相反,Java有interface
更好的解决方案。