从类扩展构造函数

发布于 2024-11-14 17:02:11 字数 424 浏览 2 评论 0原文

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

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

相反,如果我对我的类执行相同的操作:

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

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

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

感谢您的帮助;)

I have a class that extends JList and I don't know how to make the JList constructors work in my class. I know that this can be made with JList constructor:

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

Instead, if I do the same with my class:

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

The IDE suggest me to remove argument to match DatabaseJList.

Aren't supposed to be Jlist constructors inherited to my class when I extend it?

Thanks for the help ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

野味少女 2024-11-21 17:02:11

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

No. You must define constructors explicitly. Any constructor that you want to "inherit" must be defined in the subclass, and most likely has to call super(..) with the same arguments.

娜些时光,永不杰束 2024-11-21 17:02:11

构造函数不是继承的(至少不是您所想的那种意义上的)。您必须显式编写这样的构造函数:

class DatabaseJList extends JList {

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

    ...

}

Constructors are not inherited (at least, not in the sense that you're thinking of). You must explicitly write such a constructor:

class DatabaseJList extends JList {

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

    ...

}
提笔落墨 2024-11-21 17:02:11

您可以使用在类中使用与超类相同的参数定义构造函数来在类的构造函数中调用超类的构造

super(...)

函数。然后只需使用 super() 调用超类构造函数,然后继续进行初始化

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

You can call the superclass's constructor in your class's constructor using

super(...)

Define a constructor in your class with the same parameters as the super classes'. Then simply use super() to call the superclass constructor and then continue to do your initializations

Remember, super() should be on the first line of your constructor

一生独一 2024-11-21 17:02:11

我认为你需要把 super(model);在您的 DatabaseJList 构造函数中

I think you need to put super(model); in your DatabaseJList constructor

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文