私は三つのクラス(A、B、C)を定義:Javaの不明瞭な結果
public class A {
int i = 5;
public A() {
foo();
}
public void foo() {
System.out.println(i);
}
}
class B extends A {
int i = 6;
}
class C extends B {
int i = 7;
public void foo() {
System.out.print(super.i);
}
public static void main(String[] args) {
C c = new C();
}
}
期待される結果は次のとおりです。6 が、プログラムリターン:0
誰かが結果を説明することができますか? あなたの助けに感謝します。
ないコンストラクタの後に - しかし、コンパイルされ、コンストラクタ本体の最初の部分*後*スーパークラスのコンストラクタへの呼び出し。 –