子类不能重写 在超类中声明为final的 任何方法 。如果我们尝试覆盖超类的最终方法,则会在Java中收到错误消息。
方法声明应与要重写的方法相同。
在尝试覆盖之前,该类(子类)应扩展另一个类(超类)。
子类永远不能覆盖超类的最终方法。
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"); } }
在上面的例子,如果我们试图重写最后一个方法(加速()方法) 中的超类。编译器将抛出错误。因此,我们不会覆盖Java中超类的最终方法。
输出结果
overridden method is final