我有作业,当我运行它时,它会给我以下消息(不是抽象的,并且不覆盖抽象方法(我使用了一个接口,应该运行正常的
interface Employee1212 {
int retirementAge = 60;
double generateSalary();
double getBonus(double a, double b);
}
public class Manager implements Employee1212 {
public double generateSalary() {
return 10.0;
}
double getBonus() {
return retirementAge;
}
}
接口定义了double getBonus(double a, double b);
,但您实现了double getBonus()
。您需要签名才能匹配。使用@Override
注释可以帮助防止这种类型的错误。
public class Manager implements Employee1212 {
@Override
public double generateSalary() {
return 10.0;
}
@Override
public double getBonus(double a, double b) {
return a * b; // retirementAge?
}
}
您的方法getBonus
未正确实现。
接口方法总是公共的,即使没有修饰符,所以您的实现也需要是公共的。此外,接口方法定义了两个参数,而您的实现没有定义这两个参数。