首先:用 对象.getClass().getNmae() 可以获得自身的类名
那么调用自己的一个方法
public class Test{
public void test(){
sout(this.getClass().getName());
}
}
psvm{
new Test().test()}
输出的是:Test
因此如果我们用的是super呢:
sout(super.getClass().getNmae())
输出的是什么呢》???
还是Test
这是为什么呢?
因为getClass这个方法在Object这个类中是final和native修饰的,子类不能覆盖。而在Object里面呢,定义的是getClass()代表的是正在运行的类,因此,运行的还是Test。
如何获得父类呢
sout(this.getClass().getSuperclass().getName())