類的初始化和例項的初始化

2021-10-21 21:15:27 字數 611 閱讀 9788

執行結果

一、初始main方法所在的類,有父類先初始化父類,初始屬性和構造方法,執行順序與**順序一致

(5)(1)(10)(6)

二、物件son初始化

1、呼叫super

* 載入父類f非靜態的物件,屬性與**塊按順序,構造器最後執行,順序如下

① i =test(); //實際執行子類重寫的物件 (9)

② 呼叫父類非靜態**塊 (3)

③ 載入父類構造方法 (2)

2 載入子類非靜態物件

* 載入子類非靜態屬性,構造器,這兩項按順序載入 (9)(8)

* 最後載入子類構造方法 (7)

1.1乙個類要建立例項需要先載入並初始化這個類

1.2乙個子類要初始化就必須先初始化它的父類

1.3乙個類初始化的過程就是執行()方法的過程

2 類初始化完畢就要開始例項初始化了,例項化就是執行()的步驟

3 還要考慮子類的重寫和物件導向的多型

類初始化和例項初始化

乙個類要建立例項需要先載入並初始化該類 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...

類的初始化和例項的初始化

有如下兩個類 father 父類 package com.yzx.test01 父類物件 父類初始化 1 j method 5 2 父類的靜態 塊 1 父類的例項化方法 1 super 最前 2 i test 3 父類的非靜態 塊 4 父類的無參構造 最後 非靜態方法前面其實有乙個預設物件this ...