我有一个类“ChildClass”,它扩展了类“ParentClass”。我没有完全替换父类的构造函数,而是先调用父类的构造函数,然后再做一些额外的工作。
我相信默认情况下会调用父类的0参数构造函数。这不是我想要的。我需要使用参数调用构造函数。这可能吗?
我试过
this = (ChildClass) (new ParentClass(someArgument));
但这不起作用,因为你无法修改“this”。
答案 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(...);
}