publicclass 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...