我們可以在 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 中編譯同一個程式,你會得到以下錯誤 -

更新日期:30-6月-2020

1 千+ 瀏覽量

開啟你的 職業生涯

完成課程以取得認證

開始學習
廣告