如何使Java类扩展其他2个类?

时间:2014-11-03 17:21:43

标签: java class inheritance

在我的程序中,我已经扩展了类 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);



    }

}

3 个答案:

答案 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;通过引用它们来上课。

有时,重新设计类,它们之间的关系以及重新设计应用程序的流程,以更方便的方式解决您的问题。