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