super
имеет несколько разных значений в зависимости от контекста:- Задать нижнюю границу generic-типа:
Consumer<? super Number>
- Обратиться к члену класса-родителя, который перекрыт (shadowed) членами наследника или локальными переменными:
int foo = super.foo
- Вызвать в конструкторе конструктор родителя:
SubClass() { super("subclass param"); }
- В случае неопределенности, уточнить родительский тип (на картинке)