使用final关键字防止Java中的覆盖
可以通过在方法中使用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