重新思考 Java 中的靜態介面方法
傳統上,在 Java 介面中定義靜態方法是被禁止的。然而,Java 8 取消了這個限制,讓介面同時擁有靜態方法和具體實例方法。本文深入探討了先前禁令背後的技術原因,並闡明了目前允許的理由。
介面中的靜態方法
最初,將靜態方法包含在介面不被認為是高優先級的語言變更。由於不可預見的複雜性,隨後在 Java 7 中添加它們的提議被放棄。然而,隨著 Java 8 lambda 表達式支援的出現,引入了靜態介面方法以及可重寫的實例方法。
重寫靜態方法
儘管介面可以現在有靜態方法,它們不能被覆寫。這是因為:
建構子介面
雖然 Java 語言禁止在介面中強制執行類似建構子的方法,但使用具體類別可以實現類似的功能。透過在建立新實例時要求對特定類型進行明確命名,編譯器可以確保該類別符合所需的要求。
結論
Java 介面中的靜態方法提供了定義類別級功能和實用程式的便利機制。但是,由於靜態方法解析的性質,不支援重寫子類別中的靜態方法。在介面中強制執行類似建構函式的方法雖然很誘人,但並不是確保實作之間一致性的合適設計模式。
以上是為什麼不能重寫 Java 介面中的靜態方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!