Java不支援類別的多重繼承,標準方法不規避此限制,因為類別可以維護狀態(使用實例變數),但介面不能。
預設方法提供了行為多重繼承的有限形式,允許一個類別透過預設方法從多個介面繼承行為。
當一個類別實作的兩個介面具有相同的預設方法時,可能會發生衝突,例如兩個介面 Alpha 和 Beta 都使用了 reset() 方法。
衝突解決規則:
1 類別實作優先於預設介面實作。
2 如果兩個介面具有相同的預設方法,且類別沒有重寫該方法,則會發生錯誤。
3 如果一個接口繼承了另一個接口,並且兩者都定義了相同的預設方法,則繼承接口的版本優先。
要明確引用介面的標準實現,可以使用語法:NameInterface.super.NameMethod().
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3