Здравствуйте, Kswapd, Вы писали:
K>Здравствуйте, _NN_, Вы писали:
_NN>>Основная проблема это наследование состояния, а его в интерфейсе нет. _NN>>Не хотите реализацию по умолчанию, переопределяйте все методы по старинке. Никто не запрещает.
K>И зачем тогда методы с реализацией в интерфейсе? Замусоривание синтаксиса, ничего более. Если уж так нужно, можно сделать абстрактный класс. Но вообще не нужно. Интерфейс служит для объявления контракта — всё. Остальное излишне и может только добавить в код избыточную сложность.
В Java/C# класс может реализовать несколько интерфейсов, но не может наследоваться от нескольких классов.
Возможно стоило бы ввести отдельный тип, который предоставляет реализацию по умолчанию и позволяет множественное наследование.
Однако, код уже не изменить, поэтому пришлось пойти на такой компромисс.
В любом случае вы всегда можете сделать чистый интерфейс без реализации и от него наследовать интерфейс, предоставляющий реализацию по умолчанию.