Java继承:如何在Java中不允许实现类似于“多重继承”的东西?

时间:2012-06-01 17:15:50

标签: java swing inheritance

这是一个主要关于Java继承的问题。我正在开发一个有2个窗口的程序,这两个窗口都将在不同的类中开发,这些窗口将扩展JPanel。第一个类是“FileSub1”,第二个类是“FileSub2”。

这两个类有很多共同的方法,所以我想创建一个名为“Files”的类,并将“FileSub1”和“FileSub2”作为其子类。但Java不支持多重继承!我能在这做什么?

3 个答案:

答案 0 :(得分:16)

Prefer Composition over Inheritance

在JPanel子类中包含FileThing,而不是将其作为FileThing JPanel。

答案 1 :(得分:12)

我不明白你为什么需要多重继承。据我所知,你可以使用一个实现常用方法的抽象基类:

public abstract class AbstractFilePanel extends JPanel
{
    public void commonMethod1() {}
}

public class FileSub1 extends AbstractFilePanel 
{
    public void sub1Method() {}
}

public class FileSub2 extends AbstractFilePanel 
{
    public void sub2Method() {}
}

答案 2 :(得分:3)

您可以执行以下操作

public class Files extends JPanel{
}

public class FileSub1 extends Files{
}

public class FileSub2 extends Files{
}