Алмазная проблема с четырьмя интерфейсами, без дублирования кода - PullRequest
0 голосов
/ 13 апреля 2020

Что если у меня есть 4 данных интерфейса A, B, C и D и наследование выглядит следующим образом:

  • B и C extends A
  • D extends B и C

Цель состоит в том, чтобы реализовать эти интерфейсы без повторения какого-либо кода.

Мне кажется, я понимаю, что это своего рода проблема Diamond, но я не знаю, как для реализации.

Я бы решил это следующим образом: я бы написал 4 класса следующим образом:

class ClassA implements InterfaceA { }
class ClassB extends ClassA implements InterfaceB { }
class ClassC extends ClassA implements InterfaceC { }
class ClassD extends ClassA implements InterfaceD { }

Не полезно ли расширять реализованные классы PLUS, расширять интерфейсы? Интерфейсы предоставляются по контракту, и я должен их использовать.

...