2013-04-13 167 views
-1

這是一個簡單的問題。我在筆記本和書籍以及互聯網上研究了這些問題,但無法找到答案重寫構造函數

爲什麼要通過向其添加參數來覆蓋默認構造函數?

+0

因爲這是重寫構造函數的一種方法......? –

+1

這是重載而不是重寫。 – Matthew

+1

如果程序員無法提供構造函數,是否指編譯器提供的默認構造函數(public,no-argument)?或者,你的意思是爲什麼要有一個構造函數:public Student(String name)和public Student()? –

回答

0

您將爲類創建一個構造函數,以在其創建後立即根據其他任何條件操作其成員變量。我覺得你並不知道構造函數是什麼。

0

許多語言(如C++/C#/ Java)會自動創建默認的無參數構造函數,而不在類中明確定義。

當您在帶有或不帶參數的類中創建構造函數時,通常編譯器會停止創建默認的自動生成構造函數(取決於語言規範)。如果你有一些非默認的初始化而不是自動生成的,那麼這是假設完成的,可能不會在你期望的狀態下創建對象。

由於具有參數的構造函數是創建對象的自然方式,它本質上導致「移除」可能被稱爲「覆蓋默認構造函數」的默認自動生成構造函數。