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