Java 我从其中一个网站得到的答案是10,但我没有';我不明白为什么10

Java 我从其中一个网站得到的答案是10,但我没有';我不明白为什么10,java,inheritance,Java,Inheritance,我从其中一个网站得到的答案是10,但我不明白为什么你得到了10,因为你使用了A。如果按如下所示将其强制转换为B,您将获得20 class A { int i = 10; } class B extends A { int i = 20; } public class MainClass { public static void main(String[] args) { A a = new B();

我从其中一个网站得到的答案是10,但我不明白为什么你得到了10,因为你使用了
A
。如果按如下所示将其强制转换为
B
,您将获得
20

class A
{
    int i = 10;
} 
class B extends A
{
        int i = 20;
}
public class MainClass
{
        public static void main(String[] args)
        {
                A a = new B();
                System.out.println(a.i);
        }
}
输出:

class A {
    int i = 10;
}

class B extends A {
    int i = 20;
}

public class Main {
    public static void main(String[] args) {
        A a = new B();
        System.out.println(a.i);
        System.out.println(((B) a).i);
    }
}

与方法不同,字段不是动态选择的(我认为)
10
20