背景:
構造函數:
每個類都有一個默認無參的構造函數,初始化默認調用。
類如果自定義了構造函數,則默認的無參構造函數沒有了。如果需要無參的構造函數,必須手動添加。
super()
- super(); 的作用是調用父類的無參默認構造函數。
- 父類自定義了有參的構造函數,子類必須自定義構造函數,並且在構造函數的第一行調用父類的帶參的構造函數super();。
說明:若子類沒有自定義構造函數,那默認是無參構造函數,子類無參的構造函數默認調用父類的無參的構造函數。但是父類自定義了有參的構造函數,就沒有無參的構造函數了,所以這個編譯是失敗的。所以,子類必須自定義構造函數,並且在構造函數的第一行調用父類的帶參的構造函數super();。
- 如果父類只自定義了無參的構造函數,那么子類如果自定義了構造函數,不論有參每參,都默認調用父類無參的構造函數,這個時候,子類構造函數不用加super();