forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Множественное наследование (http://forum.boolean.name/showthread.php?t=13475)

den 11.10.2010 16:58

Множественное наследование
 
Как в C# наследовать класс от нескольких?
По аналогии в C++ написал:
PHP код:

public class Class3 Class1Class2
    
{
        
//....
    


а он ругается!:(
Читал про интерфейсы - но это както черезжопно, практически заного обявлять функции и параметры (а ели их 100500 штук;) )
Помагите!:)

Dream 11.10.2010 18:50

Ответ: Множественное наследование
 
ответ: "никак" устраивает?
Цитата:

а ели их 100500 штук
то это называется быдлокодерство

den 11.10.2010 21:12

Ответ: Множественное наследование
 
пля!
блин, столько наворотов сделали с этим ООП в C#, а бональное множественное наследование не сделели...:''((

ffinder 12.10.2010 00:11

Ответ: Множественное наследование
 
банальное? ну тогда объясни мне что общего у табуретки, красного и продолжительности. не можешь? общее между самолетом и кораблем? а если надо сделать гидросамолет?

viper86 12.10.2010 10:18

Ответ: Множественное наследование
 
Можно и нужно использовать такую конструкцию:
Код:

public class MyClass
    {
        public Class1 _class1;
        public Class2 _class2;
        public Class3 _class3;
        .............................
        public Classn _classn;
    }

И тогда используй любые методы и свойства классов Class1...Classn.

pax 12.10.2010 12:26

Ответ: Множественное наследование
 
Используйте интерфейсы а не классы. Их при наследовании может быть много. Чтобы объявить функции интерфейсов достаточно по его имени в списке наследников щелкнуть правой кнопкой и выбрать из выпадающего меню - Implement Interface (Реализовать интерфейс).

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

Код:

Class1{}
Class2: Class1{}
Class3: Class2{}

Этого вполне достаточно чтобы написать приложение любой сложности.

ffinder 12.10.2010 15:55

Ответ: Множественное наследование
 
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".

den 12.10.2010 16:14

Ответ: Множественное наследование
 
Цитата:

Сообщение от viper86 (Сообщение 164386)
Можно и нужно использовать такую конструкцию:
Код:

public class MyClass
    {
        public Class1 _class1;
        public Class2 _class2;
        public Class3 _class3;
        .............................
        public Classn _classn;
    }

И тогда используй любые методы и свойства классов Class1...Classn.

Я уже так и сделал:)

pax 12.10.2010 17:25

Ответ: Множественное наследование
 
Цитата:

Сообщение от ffinder (Сообщение 164408)
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".

Лучше ссылку на статью с примерами привел бы, чем говорить "гуглите", или сам примеров бы привел почему это лучше ;) Я например первый раз слышу про это.

ffinder 13.10.2010 00:43

Ответ: Множественное наследование
 
ну это не статья, это фундаментальная книга, вернее КНИЖИЩА, которая в обиходе называется "Банда Четырех", а официальное название у нее Приемы объектно-ориентированного проектирования http://www.rsdn.ru/res/book/oo/design_patterns.xml
Так вот во второй, кажется, главе написано, что агрегация предпочтительнее наследования, в том смысле, что открывает больший простор для будущих изменений структуры проекта, так как уменьшает связность компонентов.
Короче, книга обязательна к прочтению.

pax 13.10.2010 02:13

Ответ: Множественное наследование
 
Спасибо за название, скачал книжечку. Если найду время, почитаю, вроде небольшая.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


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

Mr_F_ 13.10.2010 14:36

Ответ: Множественное наследование
 
Цитата:

не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
имхо, наследование все равно нужно, но в меру. про "наследование против аггрегации" слыхал/читал, но лично мне встречались ситуации, когда УДОБНЕЕ было юзать наследование.

ffinder 13.10.2010 15:09

Ответ: Множественное наследование
 
дык никто же не спорит, что иногда всякое бывает.
просто разница большая между ситуациями:
- когда один базовый класс (а еще лучше интерфейс), от которого унаследовано (горизонтально) несколько классов - это хорошо
- когда у тебя глубина наследования 5-7 уровней, а потом ты начинаешь еще классы наследовать от нескольких родителей - это мрак.


Часовой пояс GMT +4, время: 12:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot