publicclass A { public A(string a) { } } publicclass B:A { public B() { } }
這段代碼編譯後,會有個錯誤提示:A does not contain a constructor that takes '0' arguments ,中文意思類A沒有包含無參構造函數。按照提示,我在類A中,添加了無參構造函數,問題解決了。那麼爲什麼會這樣呢,我們知道,子類在創建對象執行構造函數之前會先執行父類的構造函數,那麼假如父類中有多個構造函數,又是執行哪個呢,這時候base這個關鍵字我想可以來說明一切。還是看代碼吧:
publicclass A { public A() { } public A(string a) { } } publicclass B:A { public B():base() { } }