考虑下面程序的输出结果是多少?
mport 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。
不要奇怪!解释如下:在test方法中,直接调用getClass()方法,返回的是Test,因为getClass()方法在Object类中被定义成了final类型,所以等效于调用的父类继承的方法,返回的是Test。
若想返回Date。应该使用如下getClass().getSuperClass().getName();