黑马程序员技术交流社区
标题:
结果是Test 为什么不是Date???
[打印本页]
作者:
张志明
时间:
2014-2-7 10:00
标题:
结果是Test 为什么不是Date???
importjava.util.Date;
public classTestextends Date{
public static voidmain(String[] args) {
new Test().test();
}
public void test(){
System.out.println(super.getClass().getName());
}
}
复制代码
很奇怪,结果是Test 为什么呢???
为进黑马努力每一天~!!!!!面试已过
作者:
淡夜清风
时间:
2014-2-7 11:05
new Test().test();是使用匿名内部类调用test方法,就相当于Test的子类来调用test方法。
当前对象就是Test的子类对象。也就是this代表Test的子类对象。所以super就代表Test对象了。
因此super.getClass().getName()最后得到的结果是Test
作者:
自由自在2014
时间:
2014-2-7 17:00
public void test(){
System.out.println((this.getClass().getSuperclass().getName()));
}
结果是:java.util.Date
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2