История изменений
Исправление r--r--r--, (текущая версия) :
Зачем разбирать пример, который совершенно не отражает проблему?
Давай попробуем написать пример, который отражает проблему.
Представь себе, что я автор сторонней библиотеки и реализовал оба интерфейса Beep и Boop в одном классе
Идея моего примера, что некие авторы сторонней библиотеки реализовали два разных интерфейса, как ты и просил. Интерфейсы и реализации в примере - сторонние.
Озвученная тобой проблема:
ты не можешь использовать два интерфейса сразу как тип переменной или поля класса.
Будешь делать костыль в виде обёртки?
Да. В моём примере это решается через wrapper, ровно как ты написал:
наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс.
Твой тезис:
Проблема возникает с реализациями сразу нескольких интерфейсов. Типом variable сразу несколько интерфесов быть не могут. Можно сделать свой один интерфейс, который содержит (Go) или наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс. … В Java это работать не будет, поскольку потребует изменение всех конкретных реализаций, которые вовсе необязательно ваши.
Вопрос - что и почему не будет работать в Java?
Исходная версия r--r--r--, :
Зачем разбирать пример, который совершенно не отражает проблему?
Давай попробуем написать пример, который отражает проблему.
Представь себе, что я автор сторонней библиотеки и реализовал оба интерфейса Beep и Boop в одном классе
Идея моего примера, что некие авторы сторонней библиотеки реализовали два разных интерфейса, как ты и просил. Интерфейсы и реализации в примере - сторонние.
Озвученная тобой проблема:
ты не можешь использовать два интерфейса сразу как тип переменной или поля класса.
В моём примере это решается через wrapper.
Твой тезис:
Проблема возникает с реализациями сразу нескольких интерфейсов. Типом variable сразу несколько интерфесов быть не могут. Можно сделать свой один интерфейс, который содержит (Go) или наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс. … В Java это работать не будет, поскольку потребует изменение всех конкретных реализаций, которые вовсе необязательно ваши.
Вопрос - что и почему не будет работать в Java?