为什么我们不能扩展多个课程

时间:2014-04-04 13:29:01

标签: java class extends

阱, 我目前正在开发一个使用JFrame和Applet的应用程序。

为什么我们无法延伸两者......

public class myClass extends Applet, javax.swing.JFrame {...}
//invalid...

有效代码是。

public class myClass extends Applet {
    javax.swing.JFrame frame = new javax.swing.JFrame();
    public void init(){
        frame.setSize(300, 400);
        frame.setVisible(true);
    }
}

为什么这样? 为什么我们不能扩展多个类

6 个答案:

答案 0 :(得分:7)

Java的设计者从其他语言(例如C ++)中的错误中学习,其中diamond problem是由多重继承引起的问题,因此决定使Java成为单一继承语言以简化开发。

答案 1 :(得分:0)

这就是Java的工作原理。它只是不支持多重继承。多重继承可能有危险的原因有很多。例如,可能存在名称冲突。

另一方面,您可以根据需要实现任意数量的接口。

答案 2 :(得分:0)

当一个类是抽象或扩展时,您指定该类所扮演的角色。这也有助于防止循环继承。

界面只是您在课堂上提供方法功能的合约。如果您想从多个未指定类角色的来源继承,请使用界面。

答案 3 :(得分:0)

就像Jakub所说的那样,java中不支持多重继承,所以你必须使用接口。这只是语言的本质。我希望这是你所要求的。

答案 4 :(得分:0)

Java本身不允许多重继承,但您可以模拟"多继承"喜欢那个see

或者您可以使用Java8,它允许您使用可以实现ONE方法的特定接口。

答案 5 :(得分:0)

java中不支持多重继承,为了解决这个问题,使用了Interfaces的概念。您可以从任意数量的接口继承,以实现多重继承。