我在子类中,当我试图找到超类的名称时,我尝试了super.getClass(),但它只返回子类的名称。 为什么呢?
答案 0 :(得分:9)
getClass().getSuperclass()
应该这样做。
答案 1 :(得分:4)
如果你从超类(或你的超类的超类等)覆盖一个方法,super.theMethod()
将调用原始方法而不是你用它覆盖的方法。如果您没有实际覆盖theMethod
,则super.theMethod()
的行为与theMethod()
完全相同。
在这种情况下,我假设你没有覆盖getClass()
(事实上我知道你没有,因为它是最终的),所以super.getClass()
的行为与getClass()
完全相同,即无论如何调用getClass
类的Object
方法。
答案 2 :(得分:0)
这是因为你正在创建派生类的对象而不是超类..你可以试试这个
this.getClass().getSuperClass();