我们可以在 Java 中重写 final 方法吗?
覆写是实现多态性的机制之一。当我们有两个类时,其中一个类使用扩展关键字继承另一个类的属性,这两个类具有相同的方法(包括参数和返回类型,如sample),情况就是如此。
由于它是继承。如果我们实例化子类,超级类的成员的副本就会在子类对象中创建,因此子类可以使用这两种方法。
当我们调用此方法 (sample) 时,JVM 基于用于调用该方法的对象调用相应的方法。
覆写 final 方法
不,你无法在 Java 中覆写 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 中编译同一个程序,你会得到以下错误 -
广告