本帖最后由 王钊 于 2013-2-27 11:30 编辑
要看看javaAPI文档怎么说的:返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
什么是运行时类?!运行时类是Object的一个实例,注意,他返回的不是Object.class,他返回的是运行时类,就是虚拟机中是谁在运行就是谁,如果你new Date(),Date当然是运行时类,而不是Test。
Test继承Date,即使有一个属于Date的getClass()返回的也不可能是Date.class,因为当new Test()后,class Test就是一个运行时类,只不过他拥有Date的资源结构。所以谁被实例化,谁就是一个运行时类。
最后,如果想要从Test中得到Date.class,可以用this.getClass().getSuperclass(); |