Использование родительского конструктора в дочернем классе в Java - PullRequest
26 голосов
/ 08 ноября 2011

У меня есть класс "ChildClass", который расширяет класс "ParentClass".Вместо того, чтобы полностью заменить конструктор для родительского класса, я хочу сначала вызвать конструктор родительского класса, а затем выполнить дополнительную работу.

Я считаю, что по умолчанию вызывается конструктор аргументов 0 родительского класса.Это не то, что я хочу.Мне нужно, чтобы конструктор вызывался с аргументом.Возможно ли это?

Я пытался

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

, но это не работает, потому что вы не можете изменить "this".

Ответы [ 3 ]

56 голосов
/ 08 ноября 2011

Вы можете ссылаться на конструктор родителя с помощью "super" из конструктора дочернего элемента.

public class Child extends Parent {
    public Child(int someArg) {
        super(someArg);
        // other stuff
    }
    // ....
}
9 голосов
/ 08 ноября 2011

Чтобы вызвать конкретный конструктор родительского класса, поместите super(param1, param2, ...) в качестве первого оператора в теле конструктора дочернего класса.

5 голосов
/ 08 ноября 2011

Вы должны использовать супер ключевое слово.

public ChildClass(...) {
    super(...);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...