Что такое diamond problem и как Java его решает?

Middle
235 просмотров
AFK Offer AI

Diamond problem — конфликт при множественном наследовании: класс C наследует A и B, оба имеют метод foo(). Java решает это запретом множественного наследования классов — можно extends только один класс. Но с интерфейсами проблема вернулась через default методы. Если два интерфейса имеют одинаковый default метод — компилятор требует явно переопределить его в классе. Правило: класс побеждает интерфейс, конкретный интерфейс побеждает родительский.

Следующий вопрос

Что такое PriorityQueue?