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

时间:2011-11-08 18:47:01

标签: java constructor

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

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

我试过

this = (ChildClass) (new  ParentClass(someArgument));

但这不起作用,因为你无法修改“this”。

3 个答案:

答案 0 :(得分:56)

您可以在子项的构造函数中使用“super”引用父项的构造函数。

public class Child extends Parent {
    public Child(int someArg) {
        super(someArg);
        // other stuff
    }
    // ....
}

答案 1 :(得分:9)

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

答案 2 :(得分:5)

您应该使用超级关键字。

public ChildClass(...) {
    super(...);
}