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