Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > С#

С# Средство разработки на платформе .Net

Ответ
 
Опции темы
Старый 11.10.2010, 16:58   #1
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Плохо Множественное наследование

Как в C# наследовать класс от нескольких?
По аналогии в C++ написал:
public class Class3 Class1Class2
    
{
        
//....
    

а он ругается!
Читал про интерфейсы - но это както черезжопно, практически заного обявлять функции и параметры (а ели их 100500 штук )
Помагите!
(Offline)
 
Ответить с цитированием
Старый 11.10.2010, 18:50   #2
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Множественное наследование

ответ: "никак" устраивает?
а ели их 100500 штук
то это называется быдлокодерство
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
ABTOMAT (11.10.2010), den (11.10.2010), impersonalis (11.10.2010), Mr_F_ (11.10.2010), Phantom (12.10.2010), Reks888 (13.10.2010)
Старый 11.10.2010, 21:12   #3
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Множественное наследование

пля!
блин, столько наворотов сделали с этим ООП в C#, а бональное множественное наследование не сделели...
(Offline)
 
Ответить с цитированием
Старый 12.10.2010, 00:11   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Множественное наследование

банальное? ну тогда объясни мне что общего у табуретки, красного и продолжительности. не можешь? общее между самолетом и кораблем? а если надо сделать гидросамолет?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (12.10.2010)
Старый 12.10.2010, 10:18   #5
viper86
Нуждающийся
 
Аватар для viper86
 
Регистрация: 19.11.2008
Адрес: Украина, Луганск
Сообщений: 72
Написано 34 полезных сообщений
(для 123 пользователей)
Ответ: Множественное наследование

Можно и нужно использовать такую конструкцию:
public class MyClass
    { 
        public Class1 _class1;
        public Class2 _class2;
        public Class3 _class3;
        .............................
        public Classn _classn;
    }
И тогда используй любые методы и свойства классов Class1...Classn.
__________________
Лечим заражение... одна пуля - один больной.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (12.10.2010)
Старый 12.10.2010, 12:26   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Множественное наследование

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

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

Class1{}
Class2: Class1{}
Class3: Class2{}
Этого вполне достаточно чтобы написать приложение любой сложности.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (12.10.2010), viper86 (12.10.2010)
Старый 12.10.2010, 15:55   #7
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Множественное наследование

не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
(Offline)
 
Ответить с цитированием
Старый 12.10.2010, 16:14   #8
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Счастье Ответ: Множественное наследование

Сообщение от viper86 Посмотреть сообщение
Можно и нужно использовать такую конструкцию:
public class MyClass
    { 
        public Class1 _class1;
        public Class2 _class2;
        public Class3 _class3;
        .............................
        public Classn _classn;
    }
И тогда используй любые методы и свойства классов Class1...Classn.
Я уже так и сделал
(Offline)
 
Ответить с цитированием
Старый 12.10.2010, 17:25   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Множественное наследование

Сообщение от ffinder Посмотреть сообщение
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
Лучше ссылку на статью с примерами привел бы, чем говорить "гуглите", или сам примеров бы привел почему это лучше Я например первый раз слышу про это.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 13.10.2010, 00:43   #10
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Множественное наследование

ну это не статья, это фундаментальная книга, вернее КНИЖИЩА, которая в обиходе называется "Банда Четырех", а официальное название у нее Приемы объектно-ориентированного проектирования http://www.rsdn.ru/res/book/oo/design_patterns.xml
Так вот во второй, кажется, главе написано, что агрегация предпочтительнее наследования, в том смысле, что открывает больший простор для будущих изменений структуры проекта, так как уменьшает связность компонентов.
Короче, книга обязательна к прочтению.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
Dream (13.10.2010), pax (13.10.2010), viper86 (13.10.2010)
Старый 13.10.2010, 02:13   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Множественное наследование

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


Про то, что следует стремиться к максимальной независимости модулей программы знаю, там где возможно стараюсь применять. Во множественном наследовании пока большой необходимости не было кстати пока.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 13.10.2010, 14:36   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Множественное наследование

не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
имхо, наследование все равно нужно, но в меру. про "наследование против аггрегации" слыхал/читал, но лично мне встречались ситуации, когда УДОБНЕЕ было юзать наследование.
(Offline)
 
Ответить с цитированием
Старый 13.10.2010, 15:09   #13
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Множественное наследование

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


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com