当我们尝试在 Java 中覆盖超类的 final 方法时会发生什么?
javaobject oriented programmingprogramming更新于 2025/7/5 18:52:17
在超类中声明为final的任何方法都不能被子类覆盖。如果我们尝试覆盖超类的final 方法,我们将在 Java 中收到错误。
实现方法覆盖的规则
- 方法声明应与要覆盖的方法的声明相同。
- 类(子类)应在尝试覆盖之前扩展另一个类(超类)。
- 子类永远不能覆盖超类的 final 方法。
示例
class Car {
public void brake() {
System.out.println("brake() method of Car");
}
public final void accelerate() {
System.out.println("accelerate() method of Car");
}
}
public class BenzCar extends Car {
public static void main(String[] args) {
BenzCar benz = new BenzCar();
benz.accelerate();
benz.brake();
}
public void accelerate() {
System.out.println("accelerate() method of Benz Car");
}
}
在上面的例子中,如果我们尝试覆盖超类的最终方法(accelerate() 方法),编译器将抛出错误。因此,我们不会在 Java 中覆盖超类的最终方法。
输出
overridden method is final
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

