親子クラスにおける静的メソッド、構築コードブロック、構築メソッドの実行順序

1071 ワード

面接では、親子のさまざまな方法の実行順序をよく考察します.例は、面接問題の1つです.
public class A {
	public int i = method();
	public static int  j = method2();
	public int k = 0;
	public A() {
		System.out.println(1);
	}
	private int method() {
		System.out.println(2);
		return 2;
	}
	private static int method2() {
		System.out.println(3);
		return 3;
	}

}

public class B extends A{

	public static int n = method4();
	public int t = 0;
	public int m = method3();
	public B() {
		System.out.println(4);
	}
	private int method3() {
		System.out.println(5);
		return 5;
	}
	private static int method4() {
		System.out.println(6);
		return 6;
	}
	public static void main(String[] args) {
		System.out.println(7);
		A a = new B();
	}
}

この問題はプログラムの実行結果を出力させます.
この問題は、静的方法、構造方法、普通の方法、継承に関する知識を考察した.まず、クラス内の静的コードブロックが最初に実行される.静的メソッドは、クラスがjvmにロードされると実行されるからである.その後、非静的メソッド(コードブロックを構築)が実行されます.非静的メソッドはオブジェクトに属するため、オブジェクトが作成されると呼び出しが優先的にロードされます.を選択してもアクセスできます.
したがって、親子クラスにおける静的メソッド、構築コードブロック、構築メソッドの実行順序は、親静的メソッド>子静的メソッド親>親構築コードブロック>親構築メソッド>子構築コードブロック>子構築メソッドである.