從 Java 8 開始,介面現在支援靜態方法。此外,它們可以有具體的實例方法,但不能有實例欄位。
在早期的Java 版本中,由於以下原因,介面不能包含靜態方法:
靜態方法不能被重寫,因為它們是在編譯時解析的。當編譯器無法確定物件的具體類型並因此無法解析要呼叫的方法時,動態分派用於實例方法。但是,由於靜態方法需要已知的類,因此可以靜態解析它們,從而無需動態調度。
換句話說,如果超類別和子類別都具有具有相同簽名的靜態方法,則子類別的方法將始終首先調用,並覆蓋超類別的方法。然而,這在概念上是多餘的,因為人們總是可以指定包含所需版本的靜態方法的類別。
關於強制執行類似建構子的方法的額外擔憂IXMLable,請考慮以下事項:
以上是為什麼 Java 8 之前的 Java 介面不能有靜態方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!