Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ?
Зачем убрали возможность public/protected/private наследования даже в одиночном.
Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ?
Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
02.08.06 01:22: Перенесено модератором из '.NET' — TK
Начинающий программист
Re: Зачем отказались от множественного наследования в С#?
Re: Зачем отказались от множественного наследования в С#?
От:
Аноним
Дата:
01.08.06 20:30
Оценка:
Здравствуйте, binarycode, Вы писали:
B>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ? B>Зачем убрали возможность public/protected/private наследования даже в одиночном. B>Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ? B>Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
Ветка обещает быть многоочковой В "философию" прям щас.
Re: Зачем отказались от множественного наследования в С#?
Здравствуйте, binarycode, Вы писали:
B>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ?
И правильно сделали. Жаль, что вообще не запретили наследование. Ибо наследование в программировании компьютеров — это самая противоестественная вещь, которую только можно придумать. Достаточно вспомнить недавний спор на РСДН о том, кто от кого должен наследоваться — квадрат от прямоугольника или наоборот(!) — Это же просто цирк с конями сферическими в вакууме!
Инапсуляция — да! Полиморфизм — 256 раз да! Наследование — отказать. Ибо нету такой штуки в природе, ну нету. Точнее есть, но она совсем из другой оперы.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[2]: Зачем отказались от множественного наследования в С#?
Здравствуйте, McSeem2, Вы писали:
MS>Инапсуляция — да! Полиморфизм — 256 раз да! Наследование — отказать. Ибо нету такой штуки в природе, ну нету. Точнее есть, но она совсем из другой оперы.
В коде все должно быть прекрасно. И полиморфизм, и инкапсуляция, и наследование... (с) Асику
Re[2]: Зачем отказались от множественного наследования в С#?
MS>Инапсуляция — да! Полиморфизм — 256 раз да! Наследование — отказать. Ибо нету такой штуки в природе, ну нету. Точнее есть, но она совсем из другой оперы.
Как это нету? А симбиоз организмов? Его можно рассматривать как некий механизм наследования.
Re[3]: Зачем отказались от множественного наследования в С#?
Здравствуйте, binarycode, Вы писали:
B>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ? B>Зачем убрали возможность public/protected/private наследования даже в одиночном. B>Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ? B>Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
Однако Вам ни кто не мешает использовать композицию классов. И вообще множественное наследование очень трудно для восприятия.
Re: Зачем отказались от множественного наследования в С#?
Здравствуйте, binarycode, Вы писали:
B>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ? B>Зачем убрали возможность public/protected/private наследования даже в одиночном. B>Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ? B>Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
Да потому, что Хейлсберг так погрузился в паскакаль, что пропустил мимо ушей такие штуки, как policy, mixins, технику downcasting'а к шаблонным аргументам. Посуществу получилось Delphy II.
Re[2]: Зачем отказались от множественного наследования в С#?
Здравствуйте, sergey_mosyakov, Вы писали:
_>Здравствуйте, binarycode, Вы писали:
B>>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ? B>>Зачем убрали возможность public/protected/private наследования даже в одиночном. B>>Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ? B>>Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
_>Однако Вам ни кто не мешает использовать композицию классов. И вообще множественное наследование очень трудно для восприятия.
Хм... Программирование вообще трудно для восприятия, особенно неподготовленным людям. Перемещение в трех измерениях особенно трудо человеку, который обычно в плоскости ходит , но вроде желания стать пилотом это не отбивает.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re: Зачем отказались от множественного наследования в С#?
Здравствуйте, binarycode, Вы писали:
B>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ? B>Зачем убрали возможность public/protected/private наследования даже в одиночном. B>Можно ли все случаи и возможности множ.наследования в проектировании решить с одним одиноночным и n колличеством интерфейсов ? B>Может где-то уже тут это обсуждалось... Интересно же знать,что думают учёные по этому поводу
Полагаю чтоб упростить себе жизнь и не париться.
Эти идиомы не столь часто используемы в программах штамповках, где главное скорость разработки, а как оно там сделано уже "хрен с ним" главное чтоб работало.
ЗЫ Уважаемые С#-ники ничего личного, среди вас я уверен есть гуру ООП и ООД, это скорее относиться к назначению языка.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re: Зачем отказались от множественного наследования в С#?
Здравствуйте, McSeem2, Вы писали:
B>>Вот ответьте мне опытные, зачем отказались от множественного наследования ? Какова причина ?
MS>И правильно сделали. Жаль, что вообще не запретили наследование. Ибо наследование в программировании компьютеров — это самая противоестественная вещь, которую только можно придумать. Достаточно вспомнить недавний спор на РСДН о том, кто от кого должен наследоваться — квадрат от прямоугольника или наоборот(!) — Это же просто цирк с конями сферическими в вакууме!
MS>Инапсуляция — да! Полиморфизм — 256 раз да! Наследование — отказать. Ибо нету такой штуки в природе, ну нету. Точнее есть, но она совсем из другой оперы.
Инкапсуляция, полиморфизм, наследование — всё это чисто умственные операции, в природе их нет.
Наследование — неверное название, правильное — что-то вроде конкретизаци, т.е. обратное обобщению.
Re[3]: Зачем отказались от множественного наследования в С#?
Кё>Инкапсуляция, полиморфизм, наследование — всё это чисто умственные операции, в природе их нет.
Инкапсуляция — это любое живое существо — которое иикапсулирует обработку сигналов (например чтобы заставить собаку сидеть не надо подходить к ней и расставлять ей ноги и т.п. — достаточно сказать — "Сидеть"). Желудок. Там живут кучи бактерий, которых не видно, но которые тем не менее перерабатывают пищу.
Наследование — это пример всех иерархии видов животных, которые выстроили биологи.
С полиморфизмом сложнее. Но и тут можно найти пример. Одно и то-же желание есть заставит по разному действовать разных животных.
Re[4]: Зачем отказались от множественного наследования в С#?
Здравствуйте, Nikolay_Ch, Вы писали:
Кё>>Инкапсуляция, полиморфизм, наследование — всё это чисто умственные операции, в природе их нет. N_C>Инкапсуляция — это любое живое существо — которое иикапсулирует обработку сигналов (например чтобы заставить собаку сидеть не надо подходить к ней и расставлять ей ноги и т.п. — достаточно сказать — "Сидеть"). Желудок. Там живут кучи бактерий, которых не видно, но которые тем не менее перерабатывают пищу. N_C>Наследование — это пример всех иерархии видов животных, которые выстроили биологи. N_C>С полиморфизмом сложнее. Но и тут можно найти пример. Одно и то-же желание есть заставит по разному действовать разных животных.
Подумай ещё
Ты провел определенные операции и создал у себя в воображении модель, где есть наследование или инкапсуляция.
Но в природе этого НЕТ
Re[5]: Зачем отказались от множественного наследования в С#?
Кё>Подумай ещё
Перечитай еще раз мой пост.
Кё>Ты провел определенные операции и создал у себя в воображении модель, где есть наследование или инкапсуляция.
Какая модель? Когда корове хочется есть, она есть траву, когда волку охота пожевать он идет и задирает эту корову. Вот тебе полиморфизм одного и того-же чувтства.
Инкапсуляция — вообще самое простое. Ты ешь пищу и перерабатываешь ее в энергию. Что скрывается за этим процессом — тебя самого не интересует.
Ну а самое простое — наследование. Достаточно посмотреть на эволюцию видов, чтобы увидеть его. Все-же произошли от простых комочкой слизи, плавающей в океане. Постепенно развивая и наследуя характеристики. Ты сам наследовал признаки от своих родителей.
Кё>Но в природе этого НЕТ
Но оно есть Просто надо отвлечься от программирования и посмотреть вокруг.
Re[5]: Зачем отказались от множественного наследования в С#?
Интересно, а причем тут есть это в природе, или нет. Понятие искусственности/естественности метода не мало влияет на его практическую ценность. Программист он не биолог, все-таки. А кто скажет, что у наследования нет никакой практической ценности, в того кину камень. А вот у множественного наследования, имхо, весьма сомнительная практическая ценность. Чтобы ее осознать, нужно наверное пример, реализовать который с помощью множественного наследования было бы намного проще и нагляднее, чем с помощью других методов. Я такой пример привести не могу, может может кто другой?
Re[4]: Зачем отказались от множественного наследования в С#?
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>С полиморфизмом сложнее. Но и тут можно найти пример. Одно и то-же желание есть заставит по разному действовать разных животных.
Полиморфизм — в биологии (от греч. polymorphos — многообразный) — способность некоторых организмов существовать в состояниях с различной внутренней структурой или в разных внешних формах.
Внешний (а также внутренний, например биохимический) П. может быть обусловлен как внутривидовыми генетическими различиями. С другой стороны возможен П., при котором организмы с практически идентичным геномом в зависимости от внешних условий приобретают различные фенотипические формы.