Java 继承与接口深入解析
1. 方法重写与 super
关键字
在 Java 编程中,方法重写是一个重要的概念。例如,在计算合法秘书(LegalSecretary)的薪水时,如果错误地实现 getSalary
方法,会导致无限递归调用:
// 有缺陷的 LegalSecretary 薪水代码实现
public double getSalary() {
return getSalary() + 5000;
}
不能直接通过 Employee.getSalary()
调用父类的 getSalary
方法,因为这是调用静态方法的语法,而非对象的实例方法。Java 提供了 super
关键字来引用父类,调用被重写方法的一般语法如下:
super.<方法名>(<表达式>, <表达式>, ..., <表达式>)
正确的合法秘书薪水代码实现如下:
// 正常工作的 LegalSecretary 薪水代码
public double getSalary() {
return super.getSalary() + 5000; // 比普通员工多 5000 美元
}