Вы не вошли.
Кто там трындел про отсутствие интерфейсов в .NET? Кажись, линьфань?
Цитирую из книги Джона Либерти:
Кроме того, язык С# поддерживает интерфейсы (interfaces) - средст-
во заключения контракта с классом на предоставление услуг, огово-
ренных интерфейсом. В языке С# класс может наследоваться только
от одного родителя, но в нем могут быть реализованы несколько ин-
терфейсов. Реализуя интерфейс, класс обещает предоставить функ-
циональность, описанную интерфейсом.
Вне форума
Armanx64, речь шла об отсутствии множественного наследования. Про интерфейсы все знают 
nolinux.w2c.ru - море баттхерта и деаонимизации
Вне форума
Ага, вот и наш модератор. Mandriva-oid, а расскажи нам, в чём суть множественного наследования. Сам и без педивикии.
Вне форума
Мсье Armanx64, на этот предмет пытайте Linfan, когда он из Египта вернётся. Я не настолько в ООП разбираюсь. И без хамства, плиз.
nolinux.w2c.ru - море баттхерта и деаонимизации
Вне форума
И без хамства
Посмеялся
Вне форума
И без хамства
Посмеялся
Хорошо смеётся тот кто смеётся последним 
nolinux.w2c.ru - море баттхерта и деаонимизации
Вне форума
Хорошо смеётся тот кто смеётся последним
Не, хорошо смеётся тот, кто смеётся как лошадь.
Смысл жизни не 42, смысл жизни 69.
Моё.
Вне форума
Не, хорошо смеётся тот, кто смеётся как лошадь.
Ждём линь-фаня
Он несказанно веселит, особенно когда рассуждает о том, как C# тормозит, а Managed C++ - тоже, но не сильно, но Visual Basic .NET вообще жутко глючит.
Ну а чё, нафига весь этот дотнет, если можно за 5 минут скриптик на перле накатать?
(с)
Вне форума
Ой, с нетерпением жду кого-нибудь, чтобы обсудить, что же дает такого множественное наследование , без чего в .нет что-то получается "кривее".
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Да где же лунофан?
Вне форума
Ой, с нетерпением жду кого-нибудь, чтобы обсудить, что же дает такого множественное наследование , без чего в .нет что-то получается "кривее".
Да че вы прицепились к этому множественному наследованию? От него в пользу интерфейсов отказались еще в Delphi периода Борланда и в D. Ну и?
А в интерпретируемых языках, наверно, так и не откажутся.
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
От него в пользу интерфейсов отказались еще в Delphi периода Борланда и в D. Ну и?
А в интерпретируемых языках, наверно, так и не откажутся.
Да я сам не знаю, чего прицепились)
В С++ тоже, наверное, не откажутся (издал гомерический хохот)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
В С++ тоже, наверное, не откажутся (издал гомерический хохот)
и правильно сделают. Хочется интерфейсов - используй множественное наследование только интерфейсов. Кто не даёт-то?
std::fstream на множественном наследовании построен - ну и чё?
и правильно сделают. Хочется интерфейсов - используй множественное наследование только интерфейсов. Кто не даёт-то?
std::fstream на множественном наследовании построен - ну и чё?
Да ниче) Я разве где-то говорил, что че?
Вообще все один хрен и приемы примерно те же.
Отредактировано Tiphon (30-07-10 19:35:20)
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Почему в .NET нет множественного наследования? Потому, что это противоречит парадигме .NET: в любом пространстве имён дерево классов должно быть строго иерархическим, что бы всегда можно было подняться к предку, а не к предкам. А если вам нужны свойства более чем одного класса, то лучше создать интерфейс, более того, встроенный в VS2010 рефрактор на основе кода может сам создать интерфейс. Интерфейс гарантирует, что все, кто его наследуют, реализуют его. Всё. Проблем нет. Путанницы нет. Чисто, чётко, аккуратно.
Вне форума
Потому, что это противоречит парадигме .NET: в любом пространстве имён дерево классов должно быть строго иерархическим, что бы всегда можно было подняться к предку, а не к предкам.
Какая похвала Борланду
)))
Добавлено спустя 13 мин 48 с:
. А если вам нужны свойства более чем одного класса, то лучше создать интерфейс, более того, встроенный в VS2010 рефрактор на основе кода может сам создать интерфейс.
На самом деле это проще только для создателей компилятора, но не для программиста, который этим языком будет пользоваться.
"Фу бля, крохобор вонючий" (с) Svart Testare
Вне форума
На самом деле это проще только для создателей компилятора, но не для программиста, который этим языком будет пользоваться.
Все не так просто и страшно. Все сложно. Никто по одному зайцу не стреляет. Например, при создании C# обращалось внимание так же и на сложность его парса. В отличии от С++ - C# парсится очень легко, поэтому есть возможность создавать замечательные инструменты, которых под C++ нет. (Конкретика - см. Resharper ru.wikipedia.org/wiki/ReSharper)
Ну на вскидку могу еще подбросить то, что с точки зрения производительности наследование классов характеризуется за борьбу - влезет у тебя все с потрахами в кеш или нет. Как раз неструкрутрированное наследование с виртульными функциями (т.е. с созданим виртульных таблиц) приводит к созможному уменьшению производительности С++. Имея разграничения можно легче оптимизировать данную проблему.
Квантовая механика - "малопонятный математический курьёз" (с) msAVA - современный учитель.
Вне форума
Кто там трындел про отсутствие интерфейсов в .NET? Кажись, линьфань?
Цитирую из книги Джона Либерти:Кроме того, язык С# поддерживает интерфейсы (interfaces) - средст-
во заключения контракта с классом на предоставление услуг, огово-
ренных интерфейсом. В языке С# класс может наследоваться только
от одного родителя, но в нем могут быть реализованы несколько ин-
терфейсов. Реализуя интерфейс, класс обещает предоставить функ-
циональность, описанную интерфейсом.
ух ты, какую я ветку то пропустил, не посещая форум. Оказывается (k)Armanx64 тут
батхерт зализывал (я надеюсь правильно расшифровал твой ник? Косишь под Учителя?
)
(k)Арманчик, прежде чем лезть в обсуждение таких вопросов, ты бы
базовые вещи по ООП освоил бы, да и не только по ООП. А то в соседнем треде
выяснилось, что ты не знаешь таких примитивных вещей как типы (если такое
выяснится при приеме на работу - тебя ни в одну контору не возьмут... ну разве что
толчки мыть
).
Касательно основного отличия между интерфейсами и множественным наследованием -
в интерфейсах "Реализуя интерфейс, класс обещает предоставить функ-
циональность, описанную интерфейсом." А при множественном наследовании класс
потомок получает готовый функционал от предков. Разницу поймешь
или надо на пальцах пояснять?
Отредактировано Linfan (14-08-10 17:59:53)
"но в отличие от вас не стремлюсь здесь перед всеми показаться умнее всех"
"Ну здесь много мосек, что ж поделаешь."
"народ после общения со мной умнеет что ли, становится более бдительным в сети"
(с) Великий Человек
Вне форума
Множественное наследование приводит к путанице и нельзя найти конкретного родителя. Безупорядоченные половые связи опасны. 
Вне форума
Множественное наследование приводит к путанице и нельзя найти конкретного родителя. Безупорядоченные половые связи опасны. wink
(k)Арманчик, вы непроходимо тупы и не шарите в теме чуть более чем полностью. Паренты декларируются в самом начале класса.
class MutiParents (Parent1, Parent2, Parent3):
def __init__(...):
и т.д.
Заявить такое - тоже самое сказать, что "интерфейсы приводят к путанице и нельзя найти конкретный интерфейс".
"но в отличие от вас не стремлюсь здесь перед всеми показаться умнее всех"
"Ну здесь много мосек, что ж поделаешь."
"народ после общения со мной умнеет что ли, становится более бдительным в сети"
(с) Великий Человек
Вне форума
Множественное наследование приводит к путанице и нельзя найти конкретного родителя. Безупорядоченные половые связи опасны. ;)
Любое расширение возможностей потенциально повышает сложность, а значит и увеличивает и путаницу. Это цена, которую приходится платить.
Вне форума
Наследование нужно, ибо ООП.
Множественное наследование нужно, когда два и более класса должны уметь делать что-то одно.
Но в случае других языков мне придётся делать два базовых класса, а затем наследовать от них свой производный.
В случае с .NET я знаю, что мне нужно. Максиум я наследую базовый класс - всё остальное в интерфейсе.
К примеру, я могу применить foreach к любому экземпляру класса, реализующего интерфейс IEnumerable.
Я могу создать интерфейс IВыключабл, и реализуя его в классах, я знаю, что все они могут иметь возможность выключения.
Всё просто.
Вне форума
Любое расширение возможностей потенциально повышает сложность, а значит и увеличивает и путаницу. Это цена, которую приходится платить.
100% Это верно для любого ЯП и для любого сложного проекта. В данном случае все зависит от создателей проектов.
Добавлено спустя 05 мин 46 с:
Наследование нужно, ибо ООП.
Множественное наследование нужно, когда два и более класса должны уметь делать что-то одно.
Но в случае других языков мне придётся делать два базовых класса, а затем наследовать от них свой производный.
В случае с .NET я знаю, что мне нужно. Максиум я наследую базовый класс - всё остальное в интерфейсе.
К примеру, я могу применить foreach к любому экземпляру класса, реализующего интерфейс IEnumerable.
Я могу создать интерфейс IВыключабл, и реализуя его в классах, я знаю, что все они могут иметь возможность выключения.
Всё просто.
Ты так и не понял основной сути - интерфейсы провоцируют дуплицирование кода, поскольку это отложенная имплементация. Именно благодаря языковым особенностям Питона (в т.ч. множественному наследованию) код проектов на Питоне на порядок компактнее чем на дотнете/жабе/плюсах. А соотв. скорость создания проекта гораздо выше и меньше людей нужно на его написание и поддержку. Чистый бизнес и никакой религии.
Отредактировано Linfan (14-08-10 18:40:05)
"но в отличие от вас не стремлюсь здесь перед всеми показаться умнее всех"
"Ну здесь много мосек, что ж поделаешь."
"народ после общения со мной умнеет что ли, становится более бдительным в сети"
(с) Великий Человек
Вне форума
Ты так и не понял основной сути - интерфейсы провоцируют дуплицирование кода, поскольку это отложенная имплементация. Именно благодаря языковым особенностям Питона (в т.ч. множественному наследованию) код проектов на Питоне на порядок компактнее чем на дотнете/жабе/плюсах. А соотв. скорость создания проекта гораздо выше и меньше людей нужно на его написание и поддержку. Чистый бизнес и никакой религии.
Нет, не понял тут кое что некто другой.
Код будет расти в любом случае. Интерфейсы гарантируют то, что даже несмотря на разность работы, разные классы смогут взаимодействовать по одним и тем же стандартам. Хотя да, кому я говорю...
Вне форума
Нет, не понял тут кое что некто другой.
Код будет расти в любом случае. Интерфейсы гарантируют то, что даже несмотря на разность работы, разные классы смогут взаимодействовать по одним и тем же стандартам. Хотя да, кому я говорю...
(k)Арманчик, ты хочешь сказать что имплементация интерфейсов "гарантируют то, что даже несмотря на разность работы, разные классы смогут взаимодействовать по одним и тем же стандартам" а наследование не гарантирует??? Так, школота, иди читай учебники!
Можешь сходить в блог карманыча и поскоморошничать под моим ником - судя по-всему, ты так батхерт залечиваешь 
"но в отличие от вас не стремлюсь здесь перед всеми показаться умнее всех"
"Ну здесь много мосек, что ж поделаешь."
"народ после общения со мной умнеет что ли, становится более бдительным в сети"
(с) Великий Человек
Вне форума
[ Сгенерировано за 0.009 сек, 7 запросов выполнено - Использовано памяти: 1.79 Мбайт (Пик: 1.87 Мбайт) ]