2015-09-28 2 views
0

У меня есть класс, который расширяет суперкласс. Есть некоторые атрибуты, которые находятся в суперклассе, который я использую при построении моего подкласса (Candidate). У меня есть тестовый класс для Candidate под названием CandidateTest.Потеря атрибутов SuperClass в массиве - Java

Короче говоря, я создаю массив кандидатов с различными атрибутами, затем передаю этот массив в метод. Затем этот метод проходит через массив и выбирает определенных кандидатов, а затем создает новый ArrayList с этими кандидатами.

Теперь, когда я пытаюсь напечатать некоторые из значений этих кандидатов, я получаю возврат null к атрибутам, определенным в суперклассе, но значения из подкласса отображаются в порядке.

Например, я могу сделать

for(int i=0; i < googleCandidate.size(); i++){ 
    System.out.println(googleCandidate.get(i).getCommunication()); 
} 

и напечатает меня значение стоимости связи все мои Candidate «ы. Но если я это сделать:

System.out.println(googleCandidate.get(i).getFirstName()); 

возвращает 15 строк null для каждого Candidate.

Когда я изначально создал объекты Candidate, у них было 5 значений, переданных в конструктор. Однако они, похоже, забыли значения, определенные в суперклассе, и только помнят значения, определенные в подклассе.

+0

Не могли бы вы опубликовать 'супер class' и' код class' суб? –

+0

Какой код вы хотите видеть конкретно? Конструктор? Метод, который я называю? Я не хочу перегружать страницу кодом. Спасибо за ответ btw –

+0

Нам нужен код, связанный со строительным объектом (объявление класса, конструкторы, примеры атрибутов) и вызванный метод. – RPresle

ответ

1

Я забыл инициировать атрибуты в суперклассе, когда создал экземпляр подкласса. У меня был этот код:

public AddressBook(String fn, String ln){  
} 

И все работало, когда я изменил его на это:

public AddressBook(String fn, String ln){ 
    firstName = fn; 
    lastName = ln; 
} 
Смежные вопросы