在java類中使用super來調用父類中的指定操作: super可用於訪問父類中定義的屬性; super可用於調用父類中定義的成員方法; super可用於在子類構造方法中調用父類的構造方法; 註意: 尤其當父子類出現同名成員時,可以用super進行區分; super的追溯不僅限於直接父類,還可以調用 ...
在java類中使用super來調用父類中的指定操作:
super可用於訪問父類中定義的屬性;
super可用於調用父類中定義的成員方法;
super可用於在子類構造方法中調用父類的構造方法;
註意:
尤其當父子類出現同名成員時,可以用super進行區分;
super的追溯不僅限於直接父類,還可以調用父類的父類;
super和this的用法相像,this代表本類對象的引用,super代表父類的記憶體空間的標識;
調用父類的構造方法
子類中所有的構造方法預設都會訪問父類中空參數的構造方法。
當子類被其他類使用new一個對象時,因為new的對象的值預設是子類的構造方法所產生的值,又因為子類中所有的構造方法預設都會訪問父類中空參數的構造方法,當父類中的空參數的構造方法是被顯式書寫並且有所輸出的話,new的對象的值就會預設是父類的構成方法的輸出值。也就是說父類的無參數的構造方法會影響到子類的構造方法,從而影響創建對象的的預設值。
當父類中沒有空參數的構造方法時,子類的構造方法必須通過this(參數列表)或者super(參數列表)語句指定調用本類或父類中相應的構造方法,且必須放在構造方法的第一行。
當父類是有參構造方法的時候,其子類也必須有一個有參構造方法,好去配合調用父類的有參構造方法,並且調用父類的構造方法要放到第一行。
如果子類構造方法中既未顯式調用父類或本類的構造方法,且父類中又沒有無參的構造方法,則編譯出錯。