public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test2 t = new Test2();
t.test();
}
public void test(){
System.out.println(this.getClass().getName());
System.out.println(super.getClass().getName());
}
}
结果是什么? 打印两个Test2
由于getClass()在Object类中定义成了final,子类不能覆盖该方法,所以,在test方法中调用this.getClass().getName()方法,其实就是在调用从父类继承的getClass()方法 。和super.getClass().getName() 是一样的。
可以通过使用 super.getClass().getSuperclass().getName(); 来得到父类的名字。
this通常指代当前对象,super通常指代父类。
静态方法中不能使用this关键字。