2016-04-29 88 views
3

爲什麼會有人寫Java:爲什麼有人會在默認情況下編寫super()?

super(); //(parameterless) 

一個子類的構造函數裏面,因爲如果這是不存在的,默認的,無參數的父類的構造被稱爲呢?

+2

調用'super()'構造函數沒有實際用處。當我使用它時,我會提醒自己超級構造函數被調用,所以我不會忘記(用於調試等......) – ParkerHalo

+0

@ParkerHalo是_is_實際使用:) – davmac

回答

2

我通常會產生使用IDE(如Eclipse的)構造函數,它實際上地方調用,所以這可能是其中一個案件

+0

是的,它通常是一個代碼從日食(從一些日食)造型。 –

2

的參數的超()構造函數是超級構造函數列表的只是其中的一部分各種參數,你可以打電話

super(int, String) 
super(int) 
super()   // for completeness 

即使有些球隊可能需要調用由於造型的原因,無參數的超級調用()不會取得任何成就,因而是簡單的代碼膨脹。 (有些人喜歡那樣。)

0

爲了明確(否則隱含)控制流。

這樣的代碼提醒我們,超類的默認構造函數實際上將在派生類的構造函數的開頭被調用。那些閱讀代碼的人會看到一個可視標記,提醒他們在構建實例時還要檢查超類的構造函數。

相關問題