Re[2]: "Включение" vs "Наследование" интерфейсов
От: S.Yu.Gubanov Россия http://sergey-gubanov.livejournal.com/
Дата: 28.09.04 12:42
Оценка:
Здравствуйте, Mr. None, Вы писали:

MN>Здравствуйте, S.Yu.Gubanov, Вы писали:


SYG>>"Включение" vs "Наследование" интерфейсов


MN>Разрешите сперва скорректировать термины.

MN>"Включение" — агрегация (мне так удобнее).
MN>"Наследование" — статическое наследование (именно о нём вы говорите в своём посте).
MN>Наследование — механизма разделения ресурсов между объектами связанными отношением потомок-предок.

Боюсь, что Вы это о чем-то о своем...

Множество {1,2,3,4} включает в себя подмножество {2,3}, но оно не агрегирует его. Агрегация — это когда автомобиль агрегирует в себе свой двигатель, сиденья, бензобак и колеса.

Интерфейс — это декларация объединенных в один список объявлений процедур (только объявлений, без реализации). Один интерфейс включает в себя другой интерфейс — это когда один (маленький) список полностью входит в другой (больший) список декларированных процедур.

Агрегация на языке интерфейсов выражается совсем по другому, вот так

Ia = INTERFACE
  PROCEDURE f();
  PROCEDURE g();
END;

Ib = INTERFACE
  FUNCTION  GetA(): Ia; // вот она - агрегация какая
  PROCEDURE h();
  PROCEDURE k();
END;

VAR
  b: Ib;
BEGIN

  //...

  b.GetA.f();
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.