類初始化和例項初始化以及方法的重寫(面試高頻考點)

2021-10-10 05:36:21 字數 972 閱讀 6352

考點:

類初始化過程

例項初始化過程

方法的重寫

類初始化過程

1.乙個類要建立例項的時候,需要先載入並且初始化該類

mian方法所在的類需要先載入和初始化

2.乙個子類要初始化的時候,需要先初始化該子類的父類

3.乙個類初始化就是執行方法

方法是由靜態類變數顯示賦值**和靜態**塊組成的

靜態類變數顯示賦值**和靜態**塊從上到下按順序執行

方法只執行一次

類的主動引用(一定會發生類的初始化

類的被動引用(不會發生類的初始化

例項初始化過程:

1.例項初始化就是執行方法

方法可能過載有多個,有幾個構造器就有幾個方法

方法由非靜態例項變數顯示賦值**和非靜態**塊,對應構造器**組成

非靜態例項變數顯示賦值**和非靜態**從上到下順序執行,而對應構造器的**最後執行

每次建立例項物件,呼叫對應構造器的時候,執行的就是對應的方法

方法的首行是super()或者super(實參列表),即對應父類的方法

方法的重寫override

1.那些方法不可以被重寫

final方法

靜態方法

private等在子類裡面不可見的方法

2.物件的多型性

子類如果重寫的父類的方法,通過子類物件呼叫的一定子類重寫的**

非靜態方法預設的呼叫物件是this,而this物件在構造器或者說方法中就是正在建立的物件,所以子類例項化前先建立父類的例項化,這時候父類中的非靜態方法呼叫的是子類中重寫的**

類初始化和例項初始化

乙個類要建立例項需要先載入並初始化該類 main方法所在的類需要先載入和初始化 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行clinit 方法 clinit 方法由靜態類變數顯式賦值 和靜態 塊組成 類變數顯式賦值 和靜態 塊 從上到下順序執行 clinit 方法只執行一次 父類的初始化 ...

類初始化和例項初始化

father public class father father public inttest public static intmethod son public class sonextends father son public inttest public static intmethod...

類初始化 例項初始化 方法重寫

乙個類要建立例項需要先載入並初始化該類 乙個子類要初始化需要先初始化父類 乙個類初始化就是執行 clinit 方法 例項初始化就是執行 init 方法 哪些方法不可以被重寫 物件的多型性 父類 author barrylee 2018年11月10日 下午3 52 33 public class fa...