Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.04 c
7-1080727290
-+= Evgeney =+-
2004-03-31 14:01
2004.05.16
Извращения с сотовым телефоном


14-1082613364
dreams
2004-04-22 09:56
2004.05.16
Как из delphi выцепить компилятор ?


14-1082720498
Андрей Сенченко
2004-04-23 15:41
2004.05.16
Так кто же ты ?


9-1072015827
MrAngel
2003-12-21 17:10
2004.05.16
Найти координаты точки внутри полигона.


3-1082362660
}|{yk
2004-04-19 12:17
2004.05.16
Как создавать оптимальные планы запросов в Interbase?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский