getClass方法
刚看到一个有意思的问题:
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());}}
输出结果为:Test
究其原因:getClass()方法是Object类中的,其方法的功能是返回运行时的类的字节码文件(即该运行时的类class),而每个类都是继承于Object类,因此,super.getClass()方法是调用继承于Object类的getClass()方法,这和直接调用getClass()方法效果一样,因为此时的运行时的类就是Test,整个过程与Date没什么关系。
ps:参考了网上的一些朋友的观点,然后自己总结了下原因。