Java | вызывающий метод дочернего класса - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть класс с именем HourlyEmployee, который расширяет класс с именем Employee.

У HourlyEmployee есть метод getHoursWorked, которого нет в классе Employee.

Теперь в моем основном классе I у меня есть множество разных типов сотрудников (как почасовых, так и зарплатных), и я пытаюсь запустить для l oop, который фиксирует отработанные часы каждого сотрудника HourlyEmployee.

Может кто-нибудь сказать мне, что я делаю неправильно здесь?

for (int i = 0; i < employees.length; i++) {
            if (employees[i] instanceof HourlyEmployee) {
                if (employees[i].getHoursWorked() > 80) {
                    System.out.println(employees[i].getFullName() + ": " + (employees[i]getHoursWorked() - 80));
                }
            }
        }

Выдает ошибки, когда я пытаюсь вызвать getHoursWorked в операторе if, а также в println.

При необходимости я могу предоставить дополнительный контекст, просто дайте мне знать. Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2020

Вам нужно разыграть employees[i] до HourlyEmployee.

for (int i = 0; i < employees.length; i++) {
    if (employees[i] instanceof HourlyEmployee) {
        HourlyEmployee employee = (HourlyEmployee) employees[i];
        if (employee.getHoursWorked() > 80) {
            System.out.println(employee.getFullName() + ": " + (employee.getHoursWorked() - 80));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...