如果标题有误,请见谅。有两个类 Test 和 TestChild1,其中 TestChild1 是从 Test 继承的。这两个类都有一个名为“a”的变量。当我尝试通过用子类对象实例化的超类变量访问变量“a”时,它给出的是在超类而不是子类中初始化的值。以下是引起疑问的代码
class Test {
public int a = 10;
}
class TestChild1 extends Test {
public int a = 20;
}
class Main {
public static void main(String args[]) {
Test test = new TestChild1();
System.out.println(test.a); // results in 10
}
}
请告诉我这种行为的原因。提前致谢....