Java |子类的调用方法

我有一个名为HourlyEmployee的类,它扩展了一个名为Employee的类。

HourlyEmployee具有一个Employee类中不存在的getHoursWorked方法。

现在在我的主班上,我有一系列不同类型的员工(按小时和薪水),并且我试图运行一个for循环,以获取每个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));
                }
            }
        }

当我尝试在if语句以及println中调用getHoursWorked时,它将引发错误。

如果需要,我可以提供其他背景信息,请告诉我。谢谢。

评论
  • 不好玩
    不好玩 回复

    You need to cast employees[i] to 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));
            }
        }
    }