Какова точная проблема с множественным наследованием? - PullRequest
112 голосов
/ 22 октября 2008

Я вижу людей, постоянно спрашивающих, следует ли включить множественное наследование в следующую версию C # или Java. Люди С ++, которым посчастливилось обладать такой способностью, говорят, что это все равно, что дать кому-то веревку, чтобы в итоге повеситься.

Что случилось с множественным наследованием? Есть ли конкретные образцы?

Ответы [ 11 ]

2 голосов
/ 02 сентября 2009

В самом множественном наследовании нет ничего плохого. Проблема состоит в том, чтобы добавить множественное наследование к языку, который не был разработан с учетом множественного наследования с самого начала.

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

Эта функция сложна для реализации для разработчиков компиляторов, но кажется, что этот недостаток может быть компенсирован тем фактом, что хорошая поддержка множественного наследования могла бы избежать поддержки других функций (т. Е. Не требуется интерфейс или метод расширения).

Я думаю, что поддержка множественного наследования или нет - это больше вопрос выбора, вопрос приоритетов. Более сложная функция требует больше времени для правильной реализации и работы и может быть более противоречивой. Реализация C ++ может быть причиной, по которой множественное наследование не было реализовано в C # и Java ...

...