|
Множественное наследование
|
|||
---|---|---|---|
#18+
Привет. Интересует теория. В С++ есть возможность множественного наследования, т.е. класс может наследовать от нескольких классов. В С# эту возможность изменили на наследование только от одного класса и множества интерфейсов. В FW 4.5 сделал три класса А, В и С. В наследуется от А, а С наследуется от В. Таким образом в С отражаются все наследники от А, но владелец этих наследников B, т.е. если я в В переопределю метод из А - буду иметь дело с экземпляром из B. Можно ли считать такое наследование множественным? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 00:35 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCМожно ли считать такое наследование множественным? С какого перепугу? Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit characteristics and features from more than one parent object or parent class. https://en.wikipedia.org/wiki/Multiple_inheritance В данном случае parent class (непосредственный класс-родитель) один. И иначе не получится никак - компилятор не позволит. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 06:10 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, да, абсолютно согласен. В данном примере, класс С наследуется исключительно от класса В. но если я меняю структуру класса А, то это отражается в С через класс В, если нет переопределения в классе В. могут быть ещё какие-то грабли в этой схеме, если я буду просто использовать доступные методы и свойства из класса А в классах В и С (не переопределяя их)? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 09:34 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCмогут быть ещё какие-то грабли в этой схеме, если я буду просто использовать доступные методы и свойства из класса А в классах В и С (не переопределяя их)?именно для этого и придумали наследование. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:12 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitC могут быть ещё какие-то грабли в этой схеме, если я буду просто использовать доступные методы и свойства из класса А в классах В и С (не переопределяя их)? С дуру можно и буй сломать! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:12 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCмогут быть ещё какие-то грабли в этой схеме, если я буду просто использовать доступные методы и свойства из класса А в классах В и С (не переопределяя их)? Граблей полно, и все из-за неправильно спроектированных классов. Если все грамотно сделано, то В и С для того и наследуются от А, чтобы использовать его методы и свойства не переопределяя. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:13 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Antonariyименно для этого и придумали наследование. да, но речь идёт о множественном наследовании от нескольких классов в C# (не интерфейсов). В этом и суть вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:34 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
ЕвгенийВС дуру можно и буй сломать! да, я уже читал о подобных извращениях в C#. Все плюются в сторону испытателей... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:36 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Множественное наследование когда так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
В C# это запрещено. А то что ты нарисовал это Иерархия классов без множественного наследования. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:40 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Dima TГраблей полно, и все из-за неправильно спроектированных классов. Если все грамотно сделано, то В и С для того и наследуются от А, чтобы использовать его методы и свойства не переопределяя. Вопрос стоит в том, что класс В наследуется от класса А, а класс С наследуется от класса В. Таким образом, теоретически, в классе С есть свойства и методы класса А, но фактически они принадлежат классу В. Т.е. если мы переопределим метод А.АА в классе В, то вызвав его из класса С получим результат переопределённого метода из В. Т.е. "Сон Веры Павловны" прав в том, что это не множественное наследование. "ЕвгенийВ" прав о возможных "производственных травмах" при извращениях. но что происходит при такой схеме, если не переопределять методы и свойства класса А в классе В? С будет реально "видеть" все изменения которые будут происходить в классе А через класс В. Значит в какой-то степени можно упоминать о множественном наследовании, или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:47 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCAntonariyименно для этого и придумали наследование. да, но речь идёт о множественном наследовании от нескольких классов в C#в c# нет множественного наследования, поскольку его нет и не предвидится в MSIL, это всем известно (с). о чем речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:51 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCно что происходит при такой схеме, если не переопределять методы и свойства класса А в классе В? С будет реально "видеть" все изменения которые будут происходить в классе А через класс В. Значит в какой-то степени можно упоминать о множественном наследовании, или нет?если кошку назвать собакой, то в какой-то степени можно сказать "собака замяукала". но зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 10:54 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Dima TА то что ты нарисовал это Иерархия классов без множественного наследования. оно, спасибо. вопрос снят. откуда ноги выросли: недавно был на собеседовании. мне "выкручивали руки" пытаясь добиться ответа на вопрос, как добиться множественного наследования в C#, от двух и более классов? я сказал, что ни как, только от одного класса и/или множества интерфейсов. но вопрос ставили снова и снова. я предложил такую схему, как указана выше, со мной частично согласились, но вопрос оставили открытым, т.е. не отвеченным. Уже после собеседования перерыл половину инета, ответ один - в C# такого нет! Понял. Закрепил. Более не маюсь дурью. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:05 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Antonariyпоскольку его нет и не предвидится в MSIL, это всем известно (с) Именно в MSIL оно есть: Код: c# 1. 2. 3.
=> Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
- на уровне MSIL интерфейс - это тоже класс. Со спец. модификаторами, но, тем не менее. Тут уже пробегало в какой-то теме ранее, что некто с помощью извращений в MSIL сумел реализовать множественное наследование и для обычных классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:35 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitC мне "выкручивали руки" пытаясь добиться ответа на вопрос, как добиться множественного наследования в C#, от двух и более классов? я сказал, что ни как, только от одного класса и/или множества интерфейсов. Да бывают такие придурки, 10 лет назад видели книжку по плюсам и теперь спрашивают. Забей. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:36 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCно вопрос ставили снова и снова Я бы после этого сам бы ушел с собеседования. Неадекватные вопросы на собеседовании - признак неадекватности работодателя. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:38 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Чисто схематически, но без особого смысла. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:46 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныНеадекватные вопросы на собеседовании - признак неадекватности работодателя в данном случае соискатель слабину дал. фантазировать начал ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 11:50 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCпытаясь добиться ответа на вопрос, как добиться множественного наследования в C#, от двух и более классов? Хакнуть C# Озвучил бы цифру зарплаты, чего стесняться ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 12:35 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныAntonariyпоскольку его нет и не предвидится в MSIL, это всем известно (с) Именно в MSIL оно есть:хм, на каком-то англоязычном источнике я видел обсуждение что нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 13:27 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Antonariy, До кучи . ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 14:49 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
Изопропилв данном случае соискатель слабину дал. фантазировать начал да, но собеседователь (не кадровик) так настойчиво требовал, что у меня сложилось впечатление, что он знает чего-то, что не пишут в книгах. он уверен, что это возможно, хотя и не раскрыл секретов. да я и не спросил, как бы он это реализовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 14:55 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
ЕвгенийВ, Antonariy, я так понял это две ссылки об оном. Очень интересно. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 15:04 |
|
Множественное наследование
|
|||
---|---|---|---|
#18+
WitCИзопропилв данном случае соискатель слабину дал. фантазировать начал да, но собеседователь (не кадровик) так настойчиво требовал, что у меня сложилось впечатление, что он знает чего-то, что не пишут в книгах. он уверен, что это возможно, хотя и не раскрыл секретов. да я и не спросил, как бы он это реализовал.это тупой вопрос и тупое "решение". Делать множественное наследование в C# нет нужны, я не знаю не 1 причины, зачем мне было бы это нужно. По этому, придумывать и внедрять вот такие "костыли" я бы не стал. По этому, это вопрос по типу: Почему муха летает? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2016, 15:07 |
|
|
start [/forum/topic.php?fid=20&msg=39248713&tid=1400546]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 163ms |
0 / 0 |