我正在尝试使用一个抽象类Employee
,它有两个子类:HourlyEmployee
和AnnualEmployee
。在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;
}
}
AnnualEmployee 类:
public class AnnualEmployee extends Employee{
public double computePay(double salary){
double monthlySalary;
monthlySalary = salary / 12;
return monthlySalary;
}
}
错误提示显示,
HourlyEmployee
和AnnualEmployee
都不是抽象类,因此无法覆盖Employee
中的抽象方法computePay()
。
我不明白为什么不能为这个方法提供两个不同的参数。既然我无法这样做,那么该如何解决呢?
HourlyEmployee
还是AnnualEmployee
或任何其他实现方式。那么这个人想要计算每个员工的薪资,他唯一确定的是该方法看起来像computePay()
。当需求发生变化时,如何实现抽象方法? - Tom