super.getClass().getName() //打印当前运行时类名
this.getClass().getName()//打印当前运行时类名
this.getClass().getSuperclass().getName()//打印当前运行时类的父类名
1.概念解释:
在Object体系中,getClass()方法是被final修饰, 意味着任何继承Object或继承Object子类的类都不能重写此方法, 只能调用父类中的该方法, 既然都是调用父类中的方法,故super.getClass()和this.getClass()方法效果是一样的。
2.实例解释:
在本例中,我们模仿了getClass()方法制造出了一个被final修饰的getString()方法, 并分别用super和this来调用,得到的结果均为父类中的getString的运行结果,其原因是子类并未重写该方法, 也无权重写(因为被final修饰了)。所以不管用super调用还是this调用,得到的结果都会是父类中的方法得出的结果。