java |调用子类的方法

标签 java class methods derived-class

我有一个名为 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 时,它会抛出错误。

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

最佳答案

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

关于 java |调用子类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61408236/

相关文章:

两种递归方法的Java复杂度

java - 如何从缓冲区读取并存储为 int 和 float 变量

python - 向父类中的函数添加条件更好,还是为每个子类定义单独的函数更好?

c# - 扩展已经继承另一个类的类

JAVA猜数游戏使用方法: method for play again does not work properly

c# - 这个静态方法是线程安全的吗?

java - 如何以字符串形式打印数组列表的值?

java - 在不修改JRE源代码的情况下,有没有办法让Java VM只执行本地代码?

java - Android - sqlite in子句使用多次包含相同值的数组中的值

php - 使用 PHP 和 CSS 使 <li> 活跃起来