首先要注重的是java的構造器并不是函數,所以他并不能被繼續,這在我們extends的時候寫子類的構造器時比較的常見,即使子類構造器參數和父類的完全一樣,我們也要寫super就是因為這個原因。
構造器的修飾符比較的有限,僅僅只有public PRivate protected這三個,其他的例如任何修飾符都不能對其使用,也就是說構造器不答應被成名成抽象、同步、靜態等等訪問限制以外的形式。
因為構造器不是函數,所以它是沒有返回值的,也不答應有返回值。但是這里要說明一下,構造器中答應存在return語句,但是return什么都不返回,假如你指定了返回值,雖然編譯器不會報出任何錯誤,但是JVM會認為他是一個與構造器同名的函數罷了,這樣就會出現一些莫名其妙的無法找到構造器的錯誤,這里是要加倍注重的。
在我們extends一個子類的時候經常會出現一些意想不到的問題,我在這里說一些和構造器有關的。
首先說一下Java在構造實例時的順序(不討論裝載類的過程)
構造的粗略過程如下
1、分配對象空間,并將對象中成員初始化為0或者空,java不答應用戶操縱一個不定值的對象。
2、執行屬性值的顯式初始化(這里有一點變化,一會解釋,但大體是這樣的)
3、執行構造器
新聞熱點
疑難解答