Inheritance of Static Methods in Java
Despite the claim that static methods are not inherited in Java, code demonstrates the contrary.這種矛盾提出了一個問題:靜態方法是否真正繼承了?
要理解這種明顯的悖論,重新審視Java成員遺傳的概念至關重要。根據這本書,超級分類的可訪問成員(不使用“超級”)被認為是繼承的。但是,Sun Java教程提供了更廣泛的視角:package-private成員
。基於此,靜態方法是繼承的,因為它們本質上是公開的。它們可以通過簡單的名稱訪問,並且不綁定到特定的實例。
唯一具有繼承靜態方法的特殊性是當在子類中介紹具有相同簽名的新靜態方法時,它們的行為。在這種情況下,現有的靜態方法是隱藏的,而不是被覆蓋。這種行為可確保特定於子類的靜態實現不受影響。因此,本書對成員繼承的解釋適用於實例和靜態方法,並以區別為了使靜態方法總是可見,並且如果它們在超級分類中可訪問。此外,訪問隱藏的靜態方法取決於調用是從超類還是子類別出現。免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3