子類物件中包含乙個父類物件在子類物件在建立過程中,先呼叫父類構造方法(先建立出內建的父類物件),然後再建立出自己的物件。所以子類構造時,會先呼叫父類的構造方法,如果你在子類構造方法中不顯示指明呼叫父類的哪個構造方法,系統會給你預設加上super()。這時父類必須有乙個無參的構造方法,不然會報錯。
其實咋寫都不重要,構造嘛,無非就是對類中的變數那些進行初始化,你需要對裡面的變數初始化,你就把它放到構造方法中。
畢竟你不寫,變數也會有預設值。構造方法,無非提供了乙個初始化類中變數值的途徑。
設父類有可訪問的成員屬性m個反正會先呼叫父類的構造方法
形參乙個兩個三個還是多少個都不重要,怎麼賦值取決於你構造方法的方法體裡面進行的操作(未初始化的成員變數會有預設值(區域性變數需要顯示賦初值))。
eg:子類構造方法裡面傳遞三個引數
1.你可以選擇將str賦值給父類屬性,num1與num2賦值給自己。
//子類son的構造方法2.你也可以選擇將str和num賦值給父類,char賦值給自己。son(string str,int num,char ch)
//子類son的構造方法2所以說,我們只需要記得子類構造方法必定會呼叫父類的構造方法,至於各種屬性的賦值,都是由方法內部決定的,而不是形參位置、數量等決定。son(string str,int num,char ch)
class father輸出結果:father(string str) }
class son extends father
son(string str)
son(string str, int num) }
public class test
}
父類有參構造方法子類有參構造方法2
dd,null,0,22
-------------------------------
父類無參構造方法
子類有參構造方法1
null,yy,0,0
alt+7
可以看到son類從father類繼承過來兩個屬性。
子類繼承父類,必須宣告父類的建構函式
class entity def init self,object type print parent class init called self.object type object type def get context length self raise exception get con...
父類建構函式 子類建構函式
1.子類可以通過super關鍵字來顯式地呼叫父類的建構函式。2.當父類沒有提供無引數的建構函式時,子類也不可以有無參建構函式,且子類的建構函式中必須顯式的呼叫父類的建構函式 3.如果父類提供了無引數的建構函式,此時子類的建構函式就可以不顯式的呼叫父類的建構函式,預設呼叫父類的無參建構函式。4.只要父...
父類建構函式 子類建構函式
1.子類可以通過super關鍵字來顯式地呼叫父類的建構函式。2.當父類沒有提供無引數的建構函式時,子類也不可以有無參建構函式,且子類的建構函式中必須顯式的呼叫父類的建構函式 3.如果父類提供了無引數的建構函式,此時子類的建構函式就可以不顯式的呼叫父類的建構函式,預設呼叫父類的無參建構函式。4.只要父...