【Java面試題】7 構造器Constructor是否可被override?

構造器Constructor不能被繼承,所以不能重寫Override,但能夠被重載Overload。java

Constructor不能被繼承,因此Constructor也就不能被override。每個類必須有本身的構造函數,負責構造本身這部分的構造。子類不會覆蓋父類的構造函數,相反必須負責在一開始調用父類的構造函數ide

1、構造器是幹什麼用的?(what)函數

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

 

2、構造器如何工做?(how)對象

 

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

  

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

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

三、執行構造器   變量

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

 

而執行構造器的步驟有能夠分爲如下幾步:

 

一、Bind構造器的參數

二、若是顯式的調用了this,那就遞歸調用this構造器而後跳到步驟5

三、遞歸調用顯式或者隱式的父類構造器,除了Object之外,由於它沒有父類

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

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

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

 

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

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

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

相關文章
相關標籤/搜索