小编tay*_*pen的帖子

Java结果不清楚

我定义了三个类(A,B,C):

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();
     }
}
Run Code Online (Sandbox Code Playgroud)

预期结果是:6但程序返回:0

有人能解释一下结果吗?你的帮助将不胜感激.

java variables inheritance overriding initialization

3
推荐指数
1
解决办法
75
查看次数