理解子類別建構子中super() 的必要性
在Java 中建立子類別時,會出現這樣的問題:是否需要super()方法呼叫在子類別的建構子中是強制的。本文深入探討了這個主題,並在以下方面提供了清晰的說明:
編譯器自動插入super()
這個問題的簡短答案是否定的。如果沒有明確聲明,編譯器不會自動在子類別的建構函式中插入 super() 呼叫。因此,子類別建構函式必須始終指定它打算呼叫的超類別建構函式。
不存在無參數建構子等效項
重要的是要理解,不要將子類構造函數中的super() 呼叫並不意味著編譯器將插入不帶參數的等效建構函數。如果超類別沒有可存取的無參數建構函數,則省略 super() 呼叫將導致編譯錯誤。
存在參數時的建構子呼叫
考慮帶有參數的子類別建構子。在這種情況下,需要呼叫 super() 來指定要呼叫哪個超類別建構子。呼叫的超類別建構函數主要由傳遞給子類別建構函數的實際參數決定。如果在 super() 呼叫中未指定參數列表,它將呼叫與子類別建構參數的順序和類型相符的超類別建構子。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3