Я столкнулся с многочисленными аргументами против включения множественного наследования в С#, некоторые из которых включают (философские аргументы в сторону):
- Несколько наследований слишком сложны и часто неоднозначны
- Это не нужно, потому что интерфейсы предоставляют что-то подобное
- Композиция является хорошей заменой, где интерфейсы неприемлемы.
Я исхожу из фона С++ и пропущу силу и элегантность множественного наследования. Хотя это не подходит ко всем проектам программного обеспечения, существуют ситуации, когда трудно отказать в утилите по интерфейсам, композиции и аналогичным методам OO.
Является ли исключение множественного наследования выражением о том, что разработчики недостаточно умны, чтобы использовать их с умом и неспособны решить сложные проблемы, когда они возникают?
Я лично приветствовал бы введение множественного наследования в С# (возможно, С##).
Добавление. Мне было бы интересно узнать ответы, которые поступают из одного (или процедурного фона) по сравнению с многократным наследованием. Я часто обнаружил, что разработчики, которые не имеют опыта работы с множественным наследованием, часто по умолчанию используют аргумент с множественным наследованием - это лишний аргумент просто потому, что у них нет опыта с парадигмой.