Java | child class 的调用方法

Java | calling method of a child class

我有一个名为 HourlyEmployee 的 class 扩展了一个名为 Employee 的 class。

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

现在在我的主要 class 中,我有一组不同类型的员工(小时工和薪水),我正在尝试 运行 一个 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 时它抛出错误。

如果需要,我可以提供额外的上下文,请告诉我。谢谢

您需要将 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));
        }
    }
}