Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизМножественное наследование Найти похожие ветки
← →
Yuri2004 (2004-04-28 23:43) [0]Существует ли в Делфи множественное наследование,
если да то какой синтаксис, и если нет то как можно его обойти.
← →
Юрий Зотов © (2004-04-28 23:54) [1]Не существует, и обойти это нельзя никак. Существует некий суррогат - интерфейсы, но это скорее агрегирование, чем наследование. Идея в том, что объявляется набор интерфейсов, а затем строится класс, реализующий один или несколько интерфейсов.
Примеров полно в VCL. См. строки с таким синтаксисом:
Класс_потомок = class(Класс_предок, Интерфейс1, Интерфейс2, ...)
← →
Игорь Шевченко © (2004-04-28 23:55) [2]К сожалению, не существует.
Обойти его можно либо реализуя интерфейсы, либо композицией классов делегированием поведения.
← →
Игорь Шевченко © (2004-04-28 23:56) [3]
> композицией классов и делегированием поведения
← →
Rouse_ © (2004-04-28 23:56) [4]Не существует, хотя сегодня с Юрием Федоровым мы обсуждали вариант совместить классы через интерфейс...
Говорили просто теоретически, но как вариант можно попробовать такой подход...
PS: Заранее скажу, что данный вариант мной не опробован - просто как идея. Надеюсь меня дополнят или поправят...
← →
default © (2004-04-29 00:04) [5]Rouse_ © (28.04.04 23:56) [4]
поподробнее можно?
не понимаю причём здесь интерфейсы, можно делегировать реализацию какого-то интерфейса класса другому классу через директиву imlements, но что из этого? чем это лучше простого объявления класса в полях другого класса?
← →
Rouse_ © (2004-04-29 00:09) [6]> [5] default © (29.04.04 00:04)
Разговор идет про множественное наследование...
Читайте выше моего поста, мастера обьяснили суть...
← →
default © (2004-04-29 00:19) [7]млин, это одно и тоже по сути)))
← →
Игорь Шевченко © (2004-04-29 00:51) [8]
> сегодня с Юрием Федоровым мы обсуждали вариант совместить
> классы через интерфейс
Эт как ?
> Надеюсь меня дополнят или поправят...
А поподробнее расскажи, тема интересная
← →
default © (2004-04-29 01:26) [9]Игорь Шевченко © (29.04.04 00:51) [8]
делег-ать, потом через инт-с раб-ая с об-ом мы не будем замечать что он вообще-то не цельная штуковина, а ещё включает какие-то
объекты чтоб обесп-ать фун-ть заявленных интер-ами
чего тут нового мне не понятно
← →
TUser © (2004-04-29 07:57) [10]
> К сожалению, не существует.
А мне кажется, что это хорошо. По-моему сабж - это хороший способ затруднить себе отладку. Вот когда 2 человека становятся предками третьего - то результат сами знаете - непредсказуем. Одни гены - от папы, другие от мамы. Вот и с объектами так же, наверное. Не уследишь немного за тем, от кого какие св-ва и методы произошли, - и кирдык. А если у него не только папа с мамой, а вообще - штук 15 родителей, - тогда можно сразу закапываться в землю. Я так думаю.
← →
Юрий Зотов © (2004-04-29 08:45) [11]> TUser © (29.04.04 07:57) [10]
Точно. А еще лучше - вообще отменить всякие там классы. А то - не уследишь немного за тем, где чьи свойства и методы используются - и кирдык. Можно сразу в землю закапываться.
← →
Ega23 © (2004-04-29 10:31) [12]" у Константина Константиновича девяносто четыре родителя пяти полов, двести шесть детей пяти различных полов и триста девяносто шесть срубтропцев пяти различных полов."
(С) Стругацкие, Сказка о Тройке
← →
Гаврила © (2004-04-29 10:53) [13]Скорее всего, действительно правильно сделали ,что не стали поддерживать множественное наследование.
"это класс - ребенок, потомок и мамы и папы, наследует свойства обоих"
А что, и половые признаки тоже наследует от обоих ? :-))
> default © (29.04.04 00:19) [7]
> млин, это одно и тоже по сути)))
По сути да, просто иногда удобнее с точки зрения кодирования
← →
Игорь Шевченко © (2004-04-29 10:59) [14]
> Скорее всего, действительно правильно сделали ,что не стали
> поддерживать множественное наследование.
А мне так его не хватает. Честно. Из-за того, что его нету, каждый раз приходится мускулатуру пальцев развивать, набирая один и тот же код
← →
Гаврила © (2004-04-29 11:06) [15]Игорь, а ты сделай как говорит
default © (29.04.04 00:04) [5]
Зачем же код дублировать.. )
← →
Иксик © (2004-04-29 11:11) [16]Если не ошибаюсь в C# сабжа тоже нет. Интересно почему?
← →
Игорь Шевченко © (2004-04-29 11:20) [17]Иксик © (29.04.04 11:11)
> Если не ошибаюсь в C# сабжа тоже нет. Интересно почему?
Потому что тот же Хейлсберг делал ? :))
← →
Андрей Сенченко © (2004-04-29 11:22) [18]Игорь Шевченко © (29.04.04 11:20) [17]
Потому что тот же Хейлсберг делал ? :))
Ну судя по всему
← →
Иксик © (2004-04-29 11:29) [19]
> Игорь Шевченко © (29.04.04 11:20) [17]
:)))
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.036 c