可以通过在方法中使用final关键字来防止方法重写。换句话说,最终方法不能被覆盖。
演示此过程的程序如下:
class A { int a = 8; final void print() { System.out.println("Value of a: " + a); } } class B extends A { int b = 3; void print() { System.out.println("Value of b: " + b); } } public class Demo { public static void main(String args[]) { B obj = new B(); obj.print(); } }
由于print()
A类中的方法是最终方法,因此上面的程序会生成错误,因此无法被print()
B类中的方法覆盖。错误消息如下:
Demo.java:15: error: print() in B cannot override print() in A