Павел С.цитируетв прошлом месяце
При наследовании классом метода с одной сигнатурой из нескольких мест (других классов или интерфейсов) работают три правила.

1. У классов всегда преимущество. Объявление метода в классе или суперклассе имеет приоритет перед объявлением любого метода с реализацией по умолчанию.

2. Если предыдущее правило не позволяет разрешить неоднозначность, то преимущество — у производных интерфейсов: используется метод с той же сигнатурой из наиболее конкретного интерфейса из числа содержащих реализацию по умолчанию (если интерфейс B расширяет интерфейс A, то B — более конкретный, чем A).

3. Наконец, если неоднозначность сохраняется, то класс, наследующий метод из нескольких интерфейсов, должен явным образом выбрать используемую реализацию метода по умолчанию, переопределив его и явно вызвав нужный метод.

Мы обещаем, что вам нужно знать только эти правила, больше ничего!
  • Войти или зарегистрироваться, чтобы комментировать