5

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

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

4

3 回答 3

16

更喜欢组合而不是继承

在您的 JPanel 子类中包含 FileThing,而不是使其成为 FileThingJPanel。

于 2012-06-01T17:21:50.513 回答
13

我不明白为什么你需要多重继承。据我所知,使用实现常用方法的抽象基类应该没问题:

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() {}
}
于 2012-06-01T17:18:48.930 回答
3

您可以执行以下操作

public class Files extends JPanel{
}

public class FileSub1 extends Files{
}

public class FileSub2 extends Files{
}
于 2012-06-01T17:22:25.330 回答