了計劃的範圍是:Java繼承和可變
class A
{
int i = 10;
}
class B extends A
{
int j = 20;
}
class C extends B
{
int k = 30;
}
class D extends C
{
int m = 40;
}
public class asg2
{
public static void main(String[] args)
{
A[] a = {new A(),new B(), new C(), new D()};
System.out.println(a[3].i); //No error!!!
System.out.println(a[2].j); //throws error
System.out.println(a[1].k); //throws error (Understood why error)
System.out.println(a[0].m); //throws error (Understood why error)
}
}
我明白爲什麼最後兩個罰球錯誤。 但我不明白爲什麼第二個打印語句拋出錯誤。 第一個順利運行。
asg2.java:29: error: cannot find symbol
System.out.println(a[2].j);
^
symbol: variable j
location: class A