在 Java 中尝试重写超类的 final 方法时会发生什么?


任何在超类中声明为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");
   }
}

在上面的示例中,如果我们尝试重写超类final 方法(accelerate() 方法),编译器将抛出一个错误。因此,我们不会在 Java 中重写超类的 final 方法。

Learn Java in-depth with real-world projects through our Java certification course. Enroll and become a certified expert to boost your career.

输出

overridden method is final

更新于: 2019 年 7 月 30 日

1K+ 阅读量

开启你的事业

完成课程,获得认证

开始学习
广告