構造函數和類的區別?
1.
構造函數的函數名稱與類名同名,其他方法(函數)名稱可以自定義。
2.
構造函數僅在對象被創建時系統會根據給定的參數以及類中的構造函數定義進行選擇調用,如果類中沒有定義構造函數,系統默認會提供一個無參構造空函數,什么都不會做,只是滿足接口要求,構造函數不能被顯式調用。其他函數根據程序員需要而調用,且必須顯式調用。
3.
由于對象創建后,系統必須返回新建對象的地址,賦值給指針變量(C++,C#中是將引用賦值給對象變量,其實一樣,內部也是對象地址),那么換句話說,返回接口被系統占用了,因此構造函數就不能返回任何類型值,所有帶返回值構造函數的定義編譯器都不會通過。結果就是構造函數沒有也不能有返回類型,而其他函數隨意。
4.
由于構造函數的作用只是在創建對象時用來初始化成員變量和對象的,因此構造函數不能被繼承也不能使用接口。