在Java中的子类中使用父构造函数

som*_*guy 26 java constructor

我有一个类"ChildClass",它扩展了类"ParentClass".我想先调用父类的构造函数,然后再做一些额外的工作,而不是完全替换父类的构造函数.

我相信默认情况下会调用父类的0参数构造函数.这不是我想要的.我需要使用参数调用构造函数.这可能吗?

我试过了

this = (ChildClass) (new  ParentClass(someArgument));
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为你不能修改"这个".

mis*_*ner 57

您可以在子项的构造函数中使用"super"引用父项的构造函数.

public class Child extends Parent {
    public Child(int someArg) {
        super(someArg);
        // other stuff
    }
    // ....
}
Run Code Online (Sandbox Code Playgroud)

  • 使用super()调用父代的构造函数需要是子构造函数中的FIRST调用. (8认同)
  • 啊哈,谢谢.我真的应该读一下我编写的Java编程书,它会阻止我提出这样的愚蠢问题. (2认同)

mau*_*eio 9

要调用特定的父类构造函数,请将其super(param1, param2, ...)作为子类构造函数体中的第一个语句.


wja*_*ans 5

您应该使用super关键字.

public ChildClass(...) {
    super(...);
}
Run Code Online (Sandbox Code Playgroud)