黑马程序员技术交流社区
标题:
请大侠来帮忙?
[打印本页]
作者:
@ne_pie尒ce
时间:
2013-11-9 08:41
标题:
请大侠来帮忙?
import java.util.Date;
public class Test extends Date {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Test().test();
}
public void test(){
System.out.println(super.getClass().getName());
}
}
运行结果:Test
为什么不是Date呢?求解释?
作者:
发哥-阿花
时间:
2013-11-9 09:19
getClass()是Object中
返回此 Object 的运行时类的
。而你运行时类是Test而非Test父类Date,那么调用getName()方法时返回的自然是Test而非Date。
作者:
文涛
时间:
2013-11-9 12:14
这个你必须了解getClass的函数返回情况,你可以看看api的说明
返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
这是api的原话,这是什么意思呢,意思是,getclass返回的是调用他的运行时实体类的类名,注意必须是实体,在这里只有子类Test有实体,父类没有构建实体,只是利用super指针调用了getClass方法而已,所以,返回的是正在运行且调用该方法的实体类型,自然就是test
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2