gpt4 book ai didi

Java:如何使用抽象类

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:48 25 4
gpt4 key购买 nike

我正在尝试使用抽象类 Employee,它有两个子类,HourlyEmployeeAnnualEmployee。在 Employee 类中,我有一个抽象方法:

员工类:

public abstract class Employee{
public abstract double computePay();
}

HourlyEmployee 类:

public class HourlyEmployee extends Employee{
public double computePay(double rate, double hours){
double monthlySalary;
monthlySalary = ((rate * hours) * 52) / 12;
return monthlySalary;
}
}

年度员工类:

public class AnnualEmployee extends Employee{
public double computePay(double salary){
double monthlySalary;
monthlySalary = salary / 12;
return monthlySalary;
}
}

错误表明 HourlyEmployeeAnnualEmployee 都不是抽象的,因此不能覆盖 Employee< 中的抽象方法 computePay()/.

我不明白为什么我不能为这个方法提供两个不同的参数。既然我做不到,我该如何着手解决呢?

最佳答案

您必须在 HourlyEmployeeAnnualEmployee 类中实现 double computePay()。必须保持方法签名与类 Employee

相同

要改进您的代码,您可以将HourlyEmployee 构造函数声明为

public HourlyEmployee(double rate, double hours){
this.rate = rate;
this.hours = hours;
...
}

public double computePay(){
//use this.rate and this.hours here...
}

实例化HourlyEmployee的实例时可以传费率、小时数

Employee hourlyEmployee = new HourlyEmployee(21.5, 7.5);
hourlyEmplyee.computePay();

关于Java:如何使用抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35050298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com