Mon*_*nil 3 java abstract-class abstract
我试图使用一个Abstract类Employee,它有两个子类,HourlyEmployee和AnnualEmployee.在Employee课堂上我有一个抽象的方法:
public abstract class Employee{
public abstract double computePay();
}
Run Code Online (Sandbox Code Playgroud)
public class HourlyEmployee extends Employee{
public double computePay(double rate, double hours){
double monthlySalary;
monthlySalary = ((rate * hours) * 52) / 12;
return monthlySalary;
}
}
Run Code Online (Sandbox Code Playgroud)
public class AnnualEmployee extends Employee{
public double computePay(double salary){
double monthlySalary;
monthlySalary = salary / 12;
return monthlySalary;
}
}
Run Code Online (Sandbox Code Playgroud)
错误说没有HourlyEmployee,也不AnnualEmployee是抽象的,因此不能重写抽象方法computePay()在Employee.
我不明白为什么我不能为这种方法提供两个不同的参数.由于我无法做到这一点,我该如何解决这个问题呢?
你必须实现double computePay()在课堂上HourlyEmployee和AnnualEmployee.必须保持方法签名与类相同Employee
要改进代码,可以将HourlyEmployee构造函数声明为
public HourlyEmployee(double rate, double hours){
this.rate = rate;
this.hours = hours;
...
}
public double computePay(){
//use this.rate and this.hours here...
}
Run Code Online (Sandbox Code Playgroud)
您可以在实例化HourlyEmployee实例时传递速率,小时数
Employee hourlyEmployee = new HourlyEmployee(21.5, 7.5);
hourlyEmplyee.computePay();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |