Ответ 1
Вы можете ссылаться на родительский конструктор с "супер", изнутри дочернего конструктора.
public class Child extends Parent {
public Child(int someArg) {
super(someArg);
// other stuff
}
// ....
}
У меня есть класс "ChildClass", который расширяет класс "ParentClass". Вместо того, чтобы полностью заменить конструктор родительского класса, я хочу сначала вызвать конструктор родительского класса, а затем выполнить некоторую дополнительную работу.
Я считаю, что по умолчанию вызывается конструктор аргументов родительского класса 0. Это не то, что я хочу. Мне нужен конструктор для вызова с аргументом. Возможно ли это?
Я пробовал
this = (ChildClass) (new ParentClass(someArgument));
но это не работает, потому что вы не можете изменить "this".
Вы можете ссылаться на родительский конструктор с "супер", изнутри дочернего конструктора.
public class Child extends Parent {
public Child(int someArg) {
super(someArg);
// other stuff
}
// ....
}
Чтобы вызвать конкретный конструктор родительского класса, поместите super(param1, param2, ...)
в качестве первого оператора в тело конструктора дочернего класса.
Вы должны использовать ключевое слово super.
public ChildClass(...) {
super(...);
}