1. 程式人生 > >【C#】建構函式疑問點總結

【C#】建構函式疑問點總結

前言
在學習C#的過程中,建構函式中的很多知識細節我感覺還是有必要總結一下的。
問題總結
一、建構函式的作用是什麼?
建構函式的主要作用是在建立物件(宣告物件)時初始化物件,一個類被定義時至少要有一個建構函式,如果定義類時沒有宣告建構函式,則系統會提供一個預設的無參建構函式。
二、如何理解“子類不繼承父類的建構函式,但子類預設呼叫父類的建構函式”?
在這裡我們用程式碼來為大家呈現:
在這裡插入圖片描述
這裡執行完畢後的結果為:
在這裡插入圖片描述
所以我們從結果上可知,在例項化子類Student時,先是呼叫了父類的建構函式,然後再呼叫了子類的建構函式。這就是“子類不繼承父類的建構函式”的意思。而“子類不繼承父類的建構函式”指的是子類的建構函式與父類的建構函式之間沒有“重寫”和“覆蓋”關係;只有“呼叫”關係,也就是例項化子類時先呼叫父類的建構函式,再呼叫子類的建構函式。也因為是呼叫關係,而且是預設建構函式,預設呼叫父類建構函式,我們可以理解為:public Person()==public Student():base()
三、為什麼在例項化子類時,子類要先呼叫父類再呼叫子類
因為子類繼承了父類,要想例項化子類,則必須先構造出父類,這樣才能構造出子類,才能例項化。