如何在 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 即可。

更新於: 2020 年 7 月 2 日

274 次瀏覽

開啟你的 職業 生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.