class A {
int a = 100;
void f() {
System.out.println(a);
}
}
class B extends A {
int a = 9999;
void f() {
System.out.println(a);
System.out.println(this.a);
System.out.println(super.a);
}
}
public class TestClient {
private static Context context;
public static void main(String[] args) {
A a = new B();
System.out.println(a.a);
a.f();
System.out.println("======================");
B b = new B();
b.f();
System.out.println("=======================");
((A) a).f();
}
}
100
9999
9999
100
======================
9999
9999
100
=======================
9999
9999
100
总结:子类覆盖父类的方法时,直接调用成员变量,其实是:this.成员变量。(应该是编译器自己加上的吧?)
如果要调用父类的变量,就得super.成员变量。