在我的程序中,我已经扩展了类 Applet ,但我也希望得到我在另一个类中定义的方法。我知道我不能同时延长2个课程,有没有办法解决这个问题? 我需要能够继续这样做,谢谢。
这是我的代码:
import java.applet.Applet;
import java.awt.*;
import java.awt.Graphics;
public class Grape extends Applet /* I want to extend another class here */{
public void paint (Graphics page)
{
final int MID = 150;
final int TOP = 50;
setBackground (Color.WHITE);
page.drawLine (60, 60, 750, 60); //Line
page.drawString("X discplacement = " + xDisplacement , 30, 30);
}
}
答案 0 :(得分:1)
因为钻石问题。 Java通过对类强制执行单继承来避免钻石问题。
JAVA省略了许多很少使用,知之甚少,令人困惑的功能 C ++,在我们的经验中带来更多的悲伤而不是有益。这个 主要由运算符重载组成(尽管它确实有 方法重载),多重继承和广泛的自动化 强制转换。
- James Gosling,关于钻石问题
请访问以下链接以了解有关此问题的更多信息。
在SO
上回答了类似的问题外部链接: -
<强> [编辑] 强>
How to implement multiple inheritance in Java?
界面
Java允许接口的多重继承。
答案 1 :(得分:0)
你可以让你的其他课程扩展Applet,然后让#34; Grape&#34;扩展你的其他课程。但是,当然,这有时不是你所需要的。
您还可以在Grape中存储其他类的实例。但这并不能完全解决问题。
答案 2 :(得分:0)
首先:你的问题的标题是错过领先。请为您的问题选择更好的标题。
第二:你可以将其他课程的功能注入你的葡萄&#39;通过引用它们来上课。
有时,重新设计类,它们之间的关系以及重新设计应用程序的流程,以更方便的方式解决您的问题。