Для чего нужно ключевое слово super?

super можно использовать для того чтобы:

  • Указать нижнюю границу для дженерика, это можно сделать так: Consumer<? super Number>;
  • С помощью super можно обратиться к перекрытым локальным переменным или методам родительского класса, например: int shadowedFoo = super. ShadowedFoo;
  • Он позволяет запустить конструктор родительского класса в исходном: SubClass() { super(«parent constructor»); };
  • Если два или больше реализуемых интерфейса объявляют один и тот же метод, то с помощью super можно уточнить используемый родительский.
interface A {
  default int foo() { return 1;
}

interface В {
  default int foo() { return 2; }
}

class C implements A, В {
  @Override
  public int foo() {
    return B.super.foo();
  }
}
Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *