構造器Constructor是否可被override?

一、構造器是幹什麼用的?(what)

     構造器是用來生成一個類的實例是用來初始化這個實例用的

 

二、構造器如何工作?(how)

 

     Java在構造實例時的順序是這樣的:

  

1、分配對象空間,並將對象中成員初始化爲0或者空,java不允許用戶操縱一個不定值的對象。   

2、執行屬性值的顯式初始化   

3、執行構造器   

4 、將變量關聯到堆中的對象上

 

而執行構造器的步驟有可以分爲以下幾步:

1Bind構造器的參數

2、如果顯式的調用了this,那就遞歸調用this構造器然後跳到步驟5

3、遞歸調用顯式或者隱式的父類構造器,除了Object以外,因爲它沒有父類

4、執行顯式的實例變量初始化(也就是上邊的流程中的第二步,調用返回以後執行,

   這個步驟相當於在父構造器執行後隱含執行的,看樣子像一個特殊處理)

三、構造器不可被orerride(why)

 

其實你只需要記住一句話:構造器不是方法,那麼用來修飾方法特性的所有修飾符都不能用來修飾構造器(並不等與構造器

具備這些特性,雖然不能用static修飾構造器,但它卻有靜態特性)構造器只能用 public private protected這

三個權限修飾符,且不能有返回語句。

 

參考:http://doc.linuxpk.com/43476.html


發佈了36 篇原創文章 · 獲贊 11 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章