为什么子类中的super.getClass()返回子类名

时间:2012-03-20 15:51:57

标签: java

我在子类中,当我试图找到超类的名称时,我尝试了super.getClass(),但它只返回子类的名称。 为什么呢?

3 个答案:

答案 0 :(得分:9)

getClass().getSuperclass()应该这样做。

答案 1 :(得分:4)

如果你从超类(或你的超类的超类等)覆盖一个方法,super.theMethod()将调用原始方法而不是你用它覆盖的方法。如果您没有实际覆盖theMethod,则super.theMethod()的行为与theMethod()完全相同。

在这种情况下,我假设你没有覆盖getClass()(事实上我知道你没有,因为它是最终的),所以super.getClass()的行为与getClass()完全相同,即无论如何调用getClass类的Object方法。

答案 2 :(得分:0)

这是因为你正在创建派生类的对象而不是超类..你可以试试这个

this.getClass().getSuperClass();