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呢?
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呢?
解决方案 »
- sessionFactory is not writable 异常
- FileInputStream/Out跟Reader/Writer这2对哪对什么时候用?
- 报考了scjp···请大家给点复习建议···
- 哪位仁兄会javafx。请指点一下,
- JDK路径设置全解 遇到过 java.lang.NoClassDefFoundError 的Java新手请进
- 初学者的困惑
- 急急!!在线等给分,如何用javascript动态生成立体饼图
- 关于在jb7上的程序运行问题?
- 菜鸟请教各位大虾,是一个关于reload 与submit 的问题
- scjp的培训参考书谁有?请联系:[email protected],指定参考书是哪个出版社的?
- 算法的问题,为什么布尔变量声明的位置不一样会产生这样的后果?
- 迷茫中
和楼主的问题类似。
getClass返回的是此 Object 的运行时类。所以返回的是运行的对象c的类。
嗯 主要是对getClass没了解 现在能想通了!
C c = new C();
c.init();
super调用父类b,b方法输出初始化好的a的值,定义c的对象类是C,所以输出C