如何在 Java 中防止方法被覆盖?
继承可以定义为一个类(父类/超类)获取另一个类(子类/子类)的成员(方法和字段)的过程。
如果两个类通过继承相关联。如果超类和子 类包含相同的方法(相同名称和参数),当我们使用子类对象调用该方法时,将执行子类的方法。这种机制被称为覆盖。
重写 final 方法
一旦你将一个方法声明为 final,它就无法被覆盖。如果你尝试这样做,它会生成编译时错误 -
示例
class Super{ public final void demo() { System.out.println("This is the method of the superclass"); } } class Sub extends Super{ public final void demo() { System.out.println("This is the method of the subclass"); } }
编译时错误
Sub.java:7: error: demo() in Sub cannot override demo() in Super public final void demo() { ^ overridden method is final 1 error
如果你尝试在 Eclipse 中编译相同的程序,你将收到以下错误 -
因此,如果你想防止一个方法被覆盖,你只需要将其声明为 final 即可。
广告