1.調(diào)用父類無參構(gòu)造函數(shù)是默認的!
子類的構(gòu)造方法默認都去訪問了父類的無參構(gòu)造方法:在子類中的構(gòu)造方法后都有一行默認語句 base()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Fu{ public Fu() { Console.WriteLine("fu"); }}class Zi : Fu{ public Zi() : base()//不管是否顯式調(diào)用,控制臺都會輸出fu { Console.WriteLine("zi"); }}Zi z = new Zi(); |
先執(zhí)行父類的構(gòu)造函數(shù)把父類初始化完成,再初始化子類的。
2.如何訪問父類的有參構(gòu)造函數(shù)?
可以通過super(參數(shù))去訪問父類中的有參構(gòu)造函數(shù)。可以通過this(參數(shù)...)去訪問本類中的其他構(gòu)造函數(shù)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Fu{ public Fu(int a) { Console.WriteLine("fu"+a); }}class Zi : Fu{ public Zi():base(0)//調(diào)用父類有參構(gòu)造函數(shù) { Console.WriteLine("zi"); } public Zi(int a):base(a) { Console.WriteLine("zi"+a); }} |
如果定義了構(gòu)造函數(shù),則類就不會有默認的無參構(gòu)造函數(shù);如果父類中沒有默認的,則子類構(gòu)造函數(shù)必須顯示調(diào)用父類的構(gòu)造函數(shù)
新聞熱點
疑難解答