java子類繼承父類構(gòu)造方法 關(guān)于java中子類繼承父類的構(gòu)造方法?
關(guān)于java中子類繼承父類的構(gòu)造方法?你的老師是對的,但我說不清楚。我舉個例子。類a{public a(){}//1:無參數(shù)構(gòu)造方法。Public a(string s){}//2.}類B擴展了a{P
關(guān)于java中子類繼承父類的構(gòu)造方法?
你的老師是對的,但我說不清楚。我舉個例子。類a{public a(){}//1:無參數(shù)構(gòu)造方法。Public a(string s){}//2.}類B擴展了a{Public B(string s){super(s)//3.}注意:如果位置1中沒有無參數(shù)構(gòu)造方法,則必須在位置3中主動調(diào)用具有父類參數(shù)的構(gòu)造方法。如果有一個構(gòu)造方法,那么這三個代碼可以省略,因為默認情況下Java會自動調(diào)用父類的無參數(shù)構(gòu)造方法。請記住,在構(gòu)造子類時,必須調(diào)用父類的構(gòu)造函數(shù)。所以父類或者有一個默認的無參數(shù)構(gòu)造,所以Java會自動調(diào)用這個無參數(shù)構(gòu)造。如果父類沒有無參數(shù)構(gòu)造,則需要在子類的構(gòu)造中通過super()調(diào)用父類的構(gòu)造。
當子類繼承了父類之后,能不能重寫父類中的構(gòu)造方法?
子類中定義的屬性Chang與父類中的屬性同名。子類構(gòu)造函數(shù)中的Super(long1)不為子類的屬性賦值。因此,創(chuàng)建子類的對象時,其屬性Chang采用默認值0。您可以這樣調(diào)用父類的屬性:void show(){系統(tǒng)輸出打印
父類中有構(gòu)造函數(shù)子類繼承時必須定義子類的構(gòu)造方法嗎?
這取決于具體情況。
1。如果父類沒有定義參數(shù)化構(gòu)造函數(shù)(或者有參數(shù)化構(gòu)造方法,但沒有參數(shù)化構(gòu)造方法),則子類不需要顯式定義構(gòu)造方法。
2. 如果父類有顯式定義的參數(shù)化構(gòu)造函數(shù),并且沒有顯示無參數(shù)構(gòu)造函數(shù),則子類必須顯式定義參數(shù)化構(gòu)造函數(shù),并使用super(XX)在構(gòu)造函數(shù)中顯式調(diào)用父類的參數(shù)化構(gòu)造函數(shù)