使用super關鍵字調用父類的構造方法
當我們通過new運算符和子類的構造方法創(chuàng)建一個對象時,子類的構造方法總是先調用父類的某個構造方法。簡單來說,如果不明確指定使用父類的哪個構造方法,那么子類就會調用父類的不帶參數(shù)的構造方法。 父類中聲
當我們通過new運算符和子類的構造方法創(chuàng)建一個對象時,子類的構造方法總是先調用父類的某個構造方法。簡單來說,如果不明確指定使用父類的哪個構造方法,那么子類就會調用父類的不帶參數(shù)的構造方法。
父類中聲明的構造方法
在父類中,可以聲明多個構造方法,但必須保證這些構造方法的參數(shù)不同。例如,在父類的Student中,有成員變量number和name,以及構造方法Student()和Student(int number, String name)。在后者的構造方法中,通過this關鍵字來區(qū)分成員變量與參數(shù)列表中的局部變量。
子類中通過super調用構造方法
子類通過extends關鍵字繼承父類的成員變量和方法。然而,子類并不繼承父類的構造方法,因此只能通過super關鍵字調用父類的構造方法。調用的一般格式為super(對應的參數(shù)列表)。如果父類構造方法無參數(shù),則調用方式為super();如果父類構造方法有參數(shù)且參數(shù)的個數(shù)和類型相對應,則調用方式為super(number, name),其中number和name是傳遞給父類構造方法的參數(shù)。
在主類中通過子類的構造方法創(chuàng)建對象
最后,在主類中通過子類的構造方法創(chuàng)建對象,并向該構造方法中傳遞對應的參數(shù)。傳遞的參數(shù)中的number和name會通過super關鍵字調用父類中的成員變量,從而實現(xiàn)調用父類中的構造方法。
通過使用super關鍵字來調用父類的構造方法,我們可以在子類中繼承父類的屬性和方法,并且能夠保證父類的構造方法被正確地執(zhí)行。這樣可以確保對象的初始化過程是完整的,同時也遵循了面向對象編程的封裝性和繼承性原則。