给定程序的输出是什么?( )
public class Test128 {
public static void main(String[] args){
A a = new A2();
B b = new B2();
System.out.println(a.a + b.b);
}
}
class A { int a = 1; }
class A2 extends A { int a = 2; }
class B { public int b = 1; }
class B2 extends B { public int b = 2; }1
2
11
22
在继承关系中,访问对象的同名属性,要根据引用变量的类型来确定。
即A2的对象a2中:
如果访问超类的属性a,则需要((A)a2).a;
如果要访问A2的a,则用((A2)a2).a。
即A2的对象a2中:
如果访问超类的属性a,则需要((A)a2).a;
如果要访问A2的a,则用((A2)a2).a。