阱, 我目前正在开发一个使用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);
}
}
为什么这样? 为什么我们不能扩展多个类
答案 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的概念。您可以从任意数量的接口继承,以实现多重继承。