簡體   English   中英

何時必須使用對超級構造函數的顯式調用?

[英]When must an explicit call to super constructor be used?

我正在學習super()構造函數,我遇到了這個語句:

由於繼承的實例變量應該被初始化,並且基礎 class 構造函數就是為此而設計的,因此應該始終使用對super()的顯式調用。

這個聲明是什么意思?

除了如果基礎 class 沒有定義無參數構造函數,隱式調用會導致錯誤這一事實?

您引用的這句話並沒有明確說明您需要在 class 中有 0 參數構造函數。 這句話的重點是所有屬於父 class 的變量都應該被初始化,並且你用構造函數初始化這些變量,因此你應該在你的子 class 構造函數中調用父 class 構造函數。 父 class 構造函數的 arguments 的數量是多少無關緊要。

我認為引用的段落有點誤導,因為如果您對未參數化的隱式 super() 調用不滿意,您只需要顯式調用參數化 super()。

如果基礎 class 僅具有參數化構造函數,您還必須進行參數化 super() 調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM