C# 不包含採用0個引數的建構函式
內容:
一、建構函式是什麼?
(1)建構函式 ,是一種特殊的方法。建構函式具有與類相同的名稱(方法名與類名一樣),它主要用來在建立物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在建立物件的語句中。沒有返回值。
(2)如果不指定建構函式,則類有一個預設的無參建構函式(寫一個類,如果沒有寫任何的建構函式,那麼這個類有一個預設的無引數的建構函式)。無論何時,只要使用 new 運算子例項化物件,並且不為 new 提供任何引數,就會呼叫預設建構函式。除非類是Static的,否則 C# 編譯器將為無建構函式的類提供一個公共的預設建構函式,以便該類可以例項化。
(2)建構函式必須是在類裡的一級宣告,並且命名為類名。
(3)建構函式可以有引數,new物件的時候傳遞函式引數即可。
(4)如果指定了建構函式,則不再有預設的無參建構函式,如果需要無參建構函式,則需要自己來寫。
(5)建構函式可以過載,也就是由多個引數不同的建構函式。
(6)建構函式是不能繼承的,但是可以被呼叫,任何一個子類的建構函式執行前都會呼叫父類,所以父類需要寫一個無引數的建構函式。
二、我的錯誤
導致了下面那個圖片有問題出現:
如果寫一個沒有引數的建構函式,就不會出現上面那個圖片的問題了。下圖的 Public class Student後面沒有引數,因
此Student yn = new Student();就可以正常運行了。
三、過載和重寫的區別:
重寫是子類的方法覆蓋父類的方法,要求方法名和引數都相同;一般用於子類繼承父類時重寫父類中的方法。
過載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相同,方法體也不相同,最常見的
過載的例子就是類的建構函式,可以參考API幫助文件看看類的構造方法
四、總結
如果我不去敲程式碼,我也不會發現這個問題。而我敲程式碼了,然後發現了這個問題,這就是行動下移的好處。看視訊一定要跟著敲一敲,只是純粹的看,一點收穫也沒有的。