java中为什么不能通过getClass().getName()获取父类的类名

Posted ken007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中为什么不能通过getClass().getName()获取父类的类名相关的知识,希望对你有一定的参考价值。

例如:

class A{}

public class B extends A{

public void test(){

  System.out.println(super.getClass().getName());

}

publis static void main(String[] args){

  new B().test(); //得到的输出结果为B,而不是A

  //可以通过this.getClass.getSuperclass().getName()获取父类类名(java的反射机制)

}

}

因为java中所有类均继承自Object类, 而getClass()方法在Object中是final的, 所以子类不能覆写, 儿Object中的该方法返回的是运行时类.

以上是关于java中为什么不能通过getClass().getName()获取父类的类名的主要内容,如果未能解决你的问题,请参考以下文章

java-反射

java 通过反射怎么获取方法中参数值

Java:关于Java中的this,这里为啥加不加都一样呢

getClass().getClassLoader().getResource() 和 getClass.getResource() 的区别?

java中Object类的getClass方法有什么用以及怎么使用?

Java中instanceof与getClass的区别