Java |子类的调用方法

问题描述 投票:0回答:1

我有一个名为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时,它将引发错误。

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

java class methods derived-class
1个回答
0
投票

您需要将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));
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.