在 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
廣告