在 Java 中,我們可以在介面中宣告方法為 final 嗎?
Java 中的介面是方法原型的規範。每當您需要指導程式設計師或制定一個合同,指定某個型別的 方法和欄位應該如何時,您都可以定義一個介面。
預設情況下,介面的所有方法都是 public 和 abstract。例如,在下面的 Java 程式中,我們聲明瞭一個名為 demo 的方法。
public interface MyInterface{ void demo(); }
如果您使用如下所示的 javac 命令編譯它:
c:\Examples>javac MyInterface.java
它將被編譯而不會出現錯誤。但是,如果您使用如下所示的 **javap** 命令在編譯後驗證介面:
c:\Examples>javap MyInterface Compiled from "MyInterface.java" public interface MyInterface { public abstract void demo(); }
您可以觀察到編譯器已代表您在方法前放置了 public 和 abstract 修飾符。
此外,從 Java 9 開始,您可以在介面的方法中使用 default、static、private 和 private static。除了這些之外,您不能在介面的方法中使用任何其他修飾符。
此外,如果您宣告一個方法為 final,則無法覆蓋/實現它,並且抽象方法必須被覆蓋或實現。因此,您不能宣告介面的方法為 final。
如果您仍然這樣做,它會生成一個編譯時錯誤,提示“此處不允許使用修飾符 final”。
示例
在下面的 Java 程式中,我們嘗試宣告介面的一個方法為 final。
public interface MyInterface{ public abstract final void demo(); }
編譯時錯誤
編譯時,上述程式會生成以下編譯時錯誤:
MyInterface.java:2: error: modifier final not allowed here public abstract final void demo(); ^ 1 error
廣告