标题: 运行结果为什么是这个? [打印本页] 作者: 曾振华 时间: 2014-2-21 15:14 标题: 运行结果为什么是这个? import java.util.Date;
public class Test extends Date
{
public static void main(String[] args)
{
new Test().test();
}
public void test()
{
System.out.println(super.getClass().getName());
}
}
运行结果看不懂啊作者: 松涛小玮 时间: 2014-2-21 15:57
getClass
public final Class<?> getClass()返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
查阅api文档发现
Test中的getclass方法实际调用父类Date中的方法 但Date这里的getClass方法 实际上还是上帝Object类中方法 该方法没被Date复写 也不能复写 作者: 松涛小玮 时间: 2014-2-21 16:00
返回此时Object的运行时类,此时是Test运行的,所以结果为Test作者: 徐芾清 时间: 2014-2-22 10:46
API文档:
getClass()返回一个对象的运行时类。
要想弄白会返回什么就要弄明白什么运行时类这个概念究竟指的是什么。
运行时类是指:能在运行时检测,操作对象的类。
new Test().test();
注意你new的是Test()对象,能够检测,操作该对象的类自然是Test类,返回的也就是Test