一尘不染

Java为什么要在构造函数中调用super()?

java

我正在处理一个扩展的类JFrame

这不是我的代码,它super在开始构造GUI之前先进行调用。我想知道为什么要这样做,因为我一直只访问超类的方法而不必调用super();


阅读 1088

收藏
2020-03-24

共1个答案

一尘不染

super()对于具有父级的所有类(这是Java中每个用户定义的类),都有一个不带参数的隐式调用,因此通常不需要显式调用。但是,如果父级的构造函数接受参数,并且你希望指定它们,则可以使用super()with参数调用。此外,如果父级的构造函数接受参数,并且没有默认的无参数构造函数,则需要super()使用参数进行调用。

一个示例,其中的显式调用super()使你可以进一步控制框架的标题:

class MyFrame extends JFrame
{
    public MyFrame() {
        super("My Window Title");
        ...
    }
}
2020-03-24