I am inside a subclass and when I am trying to find the name of super class, I tried super.getClass() , but it is returning me the name of the subclass only. Why?
If you override a method from your superclass (or your superclass's superclass etc.), super.theMethod()
will invoke the original method instead of the one you overrode it with. If you did not actual override theMethod
, super.theMethod()
will act exactly like theMethod()
.
In this case I assume you did not override getClass()
(in fact I know you didn't because it's final), so super.getClass()
acts exactly like getClass()
, i.e. either way the getClass
method of the Object
class is called.
This is because you are creating object of derived class and not super class.. you may try this
this.getClass().getSuperClass();
getClass().getSuperclass()
should do.