1 package test; 2 3 import java.util.Date; 4 5 public class SuperTest extends Date{ 6 7 private void test(){ 8 9 System.out.println(new Date().getClass().getName()); 10 System.out.println(this.getClass().getName()); 11 System.out.println(this.getClass().getSuperclass().getName()); 12 System.out.println(super.getClass().getName()); 13 System.out.println(super.getClass().getSuperclass().getName()); 14 } 15 16 public static void main(String[] args) { 17 new SuperTest().test(); 18 19 } 20 21 }
可以通过getClass().getName()获取对象的类名称,输出的结果如下
java.util.Date
test.SuperTest
java.util.Date
test.SuperTest
java.util.Date
最后两个的输出怎么好像不对啊!其实这就是正确的输出结果,getClass()的作用是Returns the runtime class of this Object
. 因此super.getClass获取的是当前的this对象的class,所以结果没问题。