|
С# Средство разработки на платформе .Net |
11.10.2010, 16:58
|
#1
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Множественное наследование
Как в C# наследовать класс от нескольких?
По аналогии в C++ написал:
public class Class3 : Class1, Class2 { //.... }
а он ругается!
Читал про интерфейсы - но это както черезжопно, практически заного обявлять функции и параметры (а ели их 100500 штук )
Помагите!
|
(Offline)
|
|
11.10.2010, 18:50
|
#2
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Множественное наследование
ответ: "никак" устраивает?
то это называется быдлокодерство
|
(Offline)
|
|
Эти 6 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
|
|
11.10.2010, 21:12
|
#3
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Множественное наследование
пля!
блин, столько наворотов сделали с этим ООП в C#, а бональное множественное наследование не сделели...
|
(Offline)
|
|
12.10.2010, 00:11
|
#4
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Множественное наследование
банальное? ну тогда объясни мне что общего у табуретки, красного и продолжительности. не можешь? общее между самолетом и кораблем? а если надо сделать гидросамолет?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.10.2010, 10:18
|
#5
|
Нуждающийся
Регистрация: 19.11.2008
Адрес: Украина, Луганск
Сообщений: 72
Написано 34 полезных сообщений (для 123 пользователей)
|
Ответ: Множественное наследование
Можно и нужно использовать такую конструкцию:
public class MyClass
{
public Class1 _class1;
public Class2 _class2;
public Class3 _class3;
.............................
public Classn _classn;
}
И тогда используй любые методы и свойства классов Class1...Classn.
__________________
Лечим заражение... одна пуля - один больной.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.10.2010, 12:26
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Множественное наследование
Используйте интерфейсы а не классы. Их при наследовании может быть много. Чтобы объявить функции интерфейсов достаточно по его имени в списке наследников щелкнуть правой кнопкой и выбрать из выпадающего меню - Implement Interface (Реализовать интерфейс).
Что касается наследования от классов - архитектуру программировать надо так, чтобы реализовывать последовательное наследование.
Class1{}
Class2: Class1{}
Class3: Class2{}
Этого вполне достаточно чтобы написать приложение любой сложности.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
12.10.2010, 15:55
|
#7
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Множественное наследование
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
|
(Offline)
|
|
12.10.2010, 16:14
|
#8
|
Дэвелопер
Регистрация: 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
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Множественное наследование
Сообщение от ffinder
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
|
Лучше ссылку на статью с примерами привел бы, чем говорить "гуглите", или сам примеров бы привел почему это лучше Я например первый раз слышу про это.
|
(Offline)
|
|
13.10.2010, 00:43
|
#10
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Множественное наследование
ну это не статья, это фундаментальная книга, вернее КНИЖИЩА, которая в обиходе называется "Банда Четырех", а официальное название у нее Приемы объектно-ориентированного проектирования http://www.rsdn.ru/res/book/oo/design_patterns.xml
Так вот во второй, кажется, главе написано, что агрегация предпочтительнее наследования, в том смысле, что открывает больший простор для будущих изменений структуры проекта, так как уменьшает связность компонентов.
Короче, книга обязательна к прочтению.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
13.10.2010, 02:13
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Множественное наследование
Спасибо за название, скачал книжечку. Если найду время, почитаю, вроде небольшая.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
Про то, что следует стремиться к максимальной независимости модулей программы знаю, там где возможно стараюсь применять. Во множественном наследовании пока большой необходимости не было кстати пока.
|
(Offline)
|
|
13.10.2010, 14:36
|
#12
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Множественное наследование
не, рах, в идеале архитектура должна быть такой, чтобы наследование было не нужным. гуглите "наследование против аггрегации".
|
имхо, наследование все равно нужно, но в меру. про "наследование против аггрегации" слыхал/читал, но лично мне встречались ситуации, когда УДОБНЕЕ было юзать наследование.
|
(Offline)
|
|
13.10.2010, 15:09
|
#13
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Множественное наследование
дык никто же не спорит, что иногда всякое бывает.
просто разница большая между ситуациями:
- когда один базовый класс (а еще лучше интерфейс), от которого унаследовано (горизонтально) несколько классов - это хорошо
- когда у тебя глубина наследования 5-7 уровней, а потом ты начинаешь еще классы наследовать от нескольких родителей - это мрак.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:41.
|