2010-05-19 1 views
1

Можно создать дубликат:
Should C# include multiple inheritance?Почему C# doen't поддерживает множественное наследование

Один мой знакомый задал мне вопрос ieWhy C# doen't поддерживает множественное наследование

+5

Множество вопросов вроде этого: http://stackoverflow.com/questions/191691/should-c-include-multiple-inheritance –

+0

Но почему это должно их поддерживать? Чистое значение наличия множественного наследования довольно низкое по сравнению с увеличением сложности языка. – Regent

ответ

1

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

Дополнительная информация, HERE.

+1

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

+1

как он может быть более гибким? Наследование от класса не похоже на наследование от интерфейса, интерфейс определяет контракт без фактической функциональности/повторного использования кода. –

1

Множественное наследование усложняет язык и его реализацию. Я подозреваю, что дизайнеры решили, что прибыль не стоит усилий.

1

C#, как Java, поддерживает способ борьбы с множественным наследованием, позволяя классу реализовать несколько интерфейсов. Его не совсем многократное наследование, но оно может выполнить то, что вы хотите сделать.

+1

Интересно, что существует версия Eiffel для .Net, которая использует интерфейсы CLR и делегаты для реализации версии Eiffel, если Multiple Inheritance , – Kramii