public class TestQuestion1 {
public static void main(String[] args) {
new c().visit();
}
}
class b{
int a = 4;
public void v() {
System.out.println(this.a);
System.out.println(this.getClass());
}
}
class c extends b {
int a = 6;
public void visit() {
super.v();
}
}
为什么输出会是a 和class c呢?
和楼主的问题类似。this是本类对象的引用,因此this.a返回的是本类的a
getClass返回的是此 Object 的运行时类。所以返回的是运行的对象c的类。