О супер в конструкторе подкласса? - PullRequest
2 голосов
/ 02 января 2012

Я пытаюсь использовать и понять конструктор правильно в подклассе. Давайте начнем с нескольких битов кода:

// creating an object
 account = new CreditAccount(accountNumber, personalNumber);

// constructor in superclass Account
public Account(int aNumber, int pNumber) {
accountNumber = aNumber;
personalNumber = pNumber;
}

// constructor in the subclass CreditAccount
public CreditAccount(int aNumber, int pNumber) {
super(accountNumber, personalNumber);
}

Когда я создаю новый объект, creditAccount, я отправляю accountNumber и personalNumber конструктору в подклассе. Но я делаю правильно? (Это не работает!) Собираюсь ли я использовать super в подклассе для получения содержимого конструктора суперкласса?

Поскольку подклассы наследуют только элементы данных и метод от суперкласса, а не конструктора, мне интересно, как это сделать правильно?

1 Ответ

9 голосов
/ 02 января 2012

Вы не указали, что не работает, поэтому я предполагаю, что это простая ошибка вызова:

public CreditAccount(int aNumber, int pNumber) {
   super(accountNumber, personalNumber);
}

Вы должны вызвать super() с соответствующими параметрами, которые являются вводомконструктор производного класса:

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