在 Java 中嘗試重寫超類的 final 方法時會發生什麼?


任何在超類中宣告為final的方法都不能被子類重寫。如果我們嘗試重寫超類的final方法,在 Java 中我們會收到一個錯誤。

實現方法重寫的規則

  • 方法宣告應該與要重寫的方法相同。
  • 該類(子類)應該擴充套件另一個類(超類),然後才能嘗試重寫。
  • 子類永遠不能重寫超類的 final 方法。

示例

即時演示

class Car {
   public void brake() {
      System.out.println("brake() method of Car");
   }
   public final void accelerate() {
      System.out.println("accelerate() method of Car");
   }
}
public class BenzCar extends Car {
   public static void main(String[] args) {
      BenzCar benz = new BenzCar();
      benz.accelerate();
      benz.brake();
   }
   public void accelerate() {
      System.out.println("accelerate() method of Benz Car");
   }
}

在上面的示例中,如果我們嘗試重寫超類final 方法(accelerate() 方法),編譯器將丟擲一個錯誤。因此,我們不會在 Java 中重寫超類的 final 方法。

輸出

overridden method is final

更新於: 2019 年 7 月 30 日

1K+ 閱讀量

開啟你的事業

完成課程,獲得認證

開始學習
廣告