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