類初始化問題

2022-09-16 04:57:14 字數 555 閱讀 4055

public

class main extends

a

public

void

hello()

public

static

void

main(string args)

}class

a

public

void

hello()

}

結果

s null

com.briup.main@15db9742

s hello

解析:

初始化過程是這樣的: 

1.首先,初始化父類中的靜態成員變數和靜態**塊,按照在程式**現的順序初始化; 

2.然後,初始化子類中的靜態成員變數和靜態**塊,按照在程式**現的順序初始化; 

3.其次,初始化父類的普通成員變數和**塊,在執行父類的構造方法;

4.最後,初始化子類的普通成員變數和**塊,在執行子類的構造方法;

類初始化順序問題

public class test02 public test02 public static void main string args 執行 結果如下 由此可見 靜態變數 靜態初始化塊 變數 初始化塊 構造器 2 繼承關係下的初始化順序 class parent public parent pu...

類初始化和例項初始化

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