У меня есть домашнее задание, которое я пытаюсь выполнить, но пока я не могу найти решение, моя проблема заключается в следующем:
У меня есть Суперкласс, который расширяется на классы Студент и Сотрудник.У человека есть поля имя, возраст, мужчина, затем у ученика есть балл, а у сотрудника зарплата.Для всех классов у меня есть метод для печати информации для объектов.Пример для Person:
void showPersonInfo () {
System.out.println( this.getClass().getSimpleName() + " name: " + this.name);
System.out.println( this.getClass().getSimpleName() +" age : " + this.age);
System.out.println(isMale ? this.getClass().getSimpleName() + " is male" : this.getClass().getSimpleName() + " is female");
}
и для Employee (то же самое для Student):
void showEmployeeInfo(){
super.showPersonInfo();
System.out.println(this.getClass().getSimpleName() + " salary per day is: " + this.daySalary);
}
Тогда у меня есть основной методв котором я должен сделать массив из 10 человек и заполнить его студентами, людьми и сотрудниками.После итерации мне нужно соответственно вызвать методы для подкласса - showEmployeeInfo для Employee и т. Д. Я думаю, что вы поняли идею.
Пока я сделал это:
for(int index = 0; index < guys.length; index++) {
if(guys[index].getClass() == Person.class) {
guys[index].showPersonInfo();
System.out.println();
}
Я пытаюсь сделать то же самое для других классов, и мне удается найти их с помощью getClass (), но я не могу вызватьметоды подкласса.Это вообще возможно?До сих пор я пробовал некоторые вещи, но ничего не получалось. Любые идеи?
PS: я думаю, что я могу сделать все методы статичными, но я не думаю, что это должно быть решением.:)