Определено ли оно как поле в классе java.lang.Object или в классе java.lang.Class?
Это вовсе не поле.
super.someMethod()
- это синтаксический элемент Java, который говорит "вызовите метод, как определено в моем суперклассе".
Хорошо, предположим, что гипотетически это было полем.Каким будет его тип?К чему бы это относится?Если он был объявлен как:
Class<ParentClass> super = ... // the relevant class object.
, тогда super.someMethod()
не будет работать, потому что:
Class
не имеет пользовательских методов и super.someMethod()
должен быть вызовом метода экземпляра, и мы не предоставляем подходящий экземпляр.
С другой стороны, если он был объявлен как:
ParentClass super = this;
тогда super.someMethod()
будет эквивалентно this.someMethod()
и вызовет метод в этом классе, а не переопределенный.