从类中扩展构造函数

时间:2011-06-08 21:34:14

标签: java inheritance constructor jlist

我有一个扩展JList的类,我不知道如何使JList构造函数在我的类中工作。我知道这可以使用JList构造函数:

DefaultListModel model = new DefaultListModel();
JList list = new JList(model);

相反,如果我对我的班级做同样的事情:

DefaultListModel model = new DefaultListModel();
DatabaseJList lista = new DatabaseJList(model);

IDE建议我删除与DatabaseJList匹配的参数。

当我扩展它时,不应该是继承到我的类的Jlist构造函数吗?

感谢您的帮助;)

4 个答案:

答案 0 :(得分:4)

没有。您必须显式定义构造函数。您要“继承”的任何构造函数都必须在子类中定义,并且很可能必须使用相同的参数调用super(..)

答案 1 :(得分:1)

构造函数不是继承的(至少,不是你想到的意义上的)。您必须明确地编写这样的构造函数:

class DatabaseJList extends JList {

    public DatabaseJList(ListModel model) {
        super(model);  // Call through to the super-class constructor
    }

    ...

}

答案 2 :(得分:0)

您可以使用

在类的构造函数中调用超类的构造函数
super(...)

使用与超类相同的参数在类中定义构造函数。然后只需使用super()调用超类构造函数,然后继续进行初始化

请记住,super()应位于构造函数的第一行

答案 3 :(得分:0)

我认为你需要把超级(模特);在您的DatabaseJList构造函数

相关问题