У меня возникли проблемы с получением массива, который даст мне сеттеры и получатели для подклассов в моей программе.Суперклассы Java, подклассы и массивы. Наследовать методы подкласса, не отображаемые в массиве
У меня есть основной класс Person
, подкласс SchoolEmployee
и два подкласса, которые наследуют поля из SchoolEmployee
(который наследует поля из Person
класса).
Я создал тестовый файл, чтобы проверить, все ли работает, но он только может дать мне методы для класса Person
.
Например, я создал массив:
Person[] schoolemployees = new Person[4];
Затем я продолжил ставить значения в массиве с помощью конструкторов, которые я сделал для каждого класса:
schoolemployees[0] = new Teacher(FirstNameHere, SecondName, etc...);
schoolemployees[1] = new Teacher(FirstNameHere, SecondName, etc...);
schoolemployees[2] = new Office(FirstNameHere, SecondName, etc...);
schoolemployees[2] = new Office(FirstNameHere, SecondName, etc...);
Моя проблема, я am только могу установить/получить поля и методы вызова из класса Person
.
Например:
input = JOptionPane.showInputDialog(null, "Enter name for first name");
schoolemployees[1].setFirstName(input);
Когда я пытаюсь установить/получить поля или вызывать методы в подклассах, они не будут отображаться на всех.
Может кто-нибудь объяснить, почему я не могу увидеть унаследованные поля в массиве? Спасибо.
Наследование означает, что 'SchoolEmployee' будут иметь все члены на' Person', не наоборот. – shmosel