java子類(lèi)繼承父類(lèi)實(shí)例 父類(lèi)中有構(gòu)造函數(shù)子類(lèi)繼承時(shí)必須定義子類(lèi)的構(gòu)造方法嗎?
父類(lèi)中有構(gòu)造函數(shù)子類(lèi)繼承時(shí)必須定義子類(lèi)的構(gòu)造方法嗎?這取決于具體情況。1。如果父類(lèi)沒(méi)有定義參數(shù)化構(gòu)造函數(shù)(或者有參數(shù)化構(gòu)造方法,但沒(méi)有參數(shù)化構(gòu)造方法),則子類(lèi)不需要顯式定義構(gòu)造方法。2. 如果父類(lèi)顯式
父類(lèi)中有構(gòu)造函數(shù)子類(lèi)繼承時(shí)必須定義子類(lèi)的構(gòu)造方法嗎?
這取決于具體情況。
1。如果父類(lèi)沒(méi)有定義參數(shù)化構(gòu)造函數(shù)(或者有參數(shù)化構(gòu)造方法,但沒(méi)有參數(shù)化構(gòu)造方法),則子類(lèi)不需要顯式定義構(gòu)造方法。
2. 如果父類(lèi)顯式定義了參數(shù)化構(gòu)造方法,但沒(méi)有顯示無(wú)參數(shù)構(gòu)造方法,則子類(lèi)必須顯式定義參數(shù)化構(gòu)造方法,并使用super(XX)在構(gòu)造方法中顯式調(diào)用父類(lèi)的參數(shù)化構(gòu)造方法
1。根據(jù)面向?qū)ο罄^承的概念,子類(lèi)繼承父類(lèi)的所有屬性和方法。
2. 因?yàn)闃?gòu)造函數(shù)非常特殊,調(diào)用它就像調(diào)用C函數(shù),而不是使用對(duì)象。
3. 如您所見(jiàn),在Java中,您可以使用super關(guān)鍵字訪問(wèn)這個(gè)類(lèi)的父類(lèi)的構(gòu)造方法。證明了子類(lèi)繼承了Java中父類(lèi)的構(gòu)造方法,子類(lèi)可以通過(guò)super訪問(wèn)父類(lèi)的構(gòu)造方法,只要父類(lèi)的構(gòu)造方法不是私有的。