почему super.getClass () в подклассе возвращает имя подкласса - PullRequest
10 голосов
/ 20 марта 2012

Я нахожусь внутри подкласса, и когда я пытаюсь найти имя суперкласса, я пробовал super.getClass (), но он возвращает мне только имя подкласса.Почему?

Ответы [ 3 ]

10 голосов
/ 20 марта 2012

getClass().getSuperclass() должен сделать.

4 голосов
/ 20 марта 2012

Если вы переопределите метод из вашего суперкласса (или суперкласса вашего суперкласса и т. Д.), super.theMethod() вызовет оригинальный метод вместо того, с которым вы его переопределили.Если вы на самом деле не переопределили theMethod, super.theMethod() будет действовать точно так же, как theMethod().

В этом случае я предполагаю, что вы не переопределяли getClass() (на самом деле я знаю, что вы этого не сделали, потому что этоfinal), поэтому super.getClass() действует точно так же, как getClass(), то есть в любом случае вызывается метод getClass класса Object.

0 голосов
/ 20 марта 2012

Это потому, что вы создаете объект производного класса, а не суперкласса. Вы можете попробовать это

this.getClass().getSuperClass();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...