1. 程式人生 > >[c#]基類中不包含0個引數的建構函式

[c#]基類中不包含0個引數的建構函式

由於好久沒摸程式碼了

最近忙著找工作又重新寫點基礎的程式碼以備不時之需

今天在寫程式碼寫到關於派生類的問題上就突然出現瞭如標題的問題

一開始我是這樣寫的

然後就報了這個問題,我大概查了點資料‘

大概的問題就出在Adult類的建構函式這裡

其實這裡的建構函式如果引數後面不寫東西的話那就會預設呼叫父類的無引數建構函式的

但是由於父類的建構函式我把無參的建構函式覆蓋了所以就出現了呼叫不到的情況

這裡我修改了程式碼

對的,我顯式地呼叫了父類的建構函式,由於父類的建構函式需要相應的引數這裡子類的建構函式也就需要傳入這些引數(這也很好理解,想要例項化一個成人那他首先是個人身份證、名字什麼的都是必須的  不然例項化出的一個沒有名字的成人是沒意義的)

這樣就解決了

總結了一些解決方法供參考

1、如果父類中的建構函式是已經寫好的帶引數的,又不想在子類中呼叫帶引數的建構函式則可以手動在父類中新增一個無參的建構函式

2、在子類中顯式地呼叫父類中帶參的建構函式

暫時就想到了這麼多 如果還能想到會繼續新增,也歡迎各位分享更多的解決方法