Не удается импортировать модуль модуля, который был установлен?

Проблема с алмазом применима только к реализации inheritance (extends во всех версиях Java до Java 8). Это не относится к API inheritance (implements во всех версиях Java до Java 8).

Поскольку методы интерфейса с сигнатурами типа соответствия совместимы, нет алмаз, если вы наследуете одну и ту же подпись метода в два раза: подписи сигнатур метода просто сливаются. (И если сигнатуры типа не совпадают, то у вас также нет проблемы с алмазом.)

В Java 7 и ниже единственный способ наследовать реализацию код был через ключевое слово extends, которое ограничивает не более одного родителя. Поэтому нет наследования множественной реализации и проблемы с алмазом не существует.

Java 8 добавляет новую морщину, потому что она позволяет интерфейсам иметь код реализации. Он все еще избегает проблемы с алмазом, просто отступая от предыдущего поведения (без наследования реализации), когда вы реализуете несколько интерфейсов с методами, имеющими соответствующие подписи.

0
задан Revanth Kausikan 29 March 2019 в 05:54
поделиться