JAvaオブジェクト初期化順序分析
最近自分のjavaの基础を固めて、多くのものがすべて忘れたことを発见して、よく学びましょう
テストコード
親
サブクラス
public class A extends B {
ダイレクトアップアウトプット結果
初期化順序は、親静的サブ静的親メンバー変数親構造関数サブメンバー変数サブ構造関数であることを示します.
テストコード
親
package com.hessian.client;
public class B {
public B(){
System.out.println(((A)this).a);
}
static{
System.out.println("B-----------");
}
}
サブクラス
public class A extends B {
public int a=100;
public A(){
System.out.println(this.a);
}
static{
System.out.println("a----------");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
}
ダイレクトアップアウトプット結果
B-----------
a----------
0
100
初期化順序は、親静的サブ静的親メンバー変数親構造関数サブメンバー変数サブ構造関数であることを示します.