Листинг 5.15. Пример создания и разрушения объекта
unit Geom4;
Interface
Type
TGeomFigure = class {Заголовок класса TGeomFigure, класс автоматически является наследником класса TObject}
Protected
Color: Integer; {Описание свойства с областью видимости protected}
Public
Constructor Create(aColor: Integer);{Заголовок конструктора (область видимости public) }
Destructor Destroy; override;{Заголовок деструктора (область видимости public) }
End;
Implementation {Заголовок описательной части конструктора}
Constructor TGeomFigure.Create;
Begin
Inherited Create; {Вызов конструктора родительского класса}
Color := aColor; {Инициализация свойства, которая не
может быть выполнена в родительском
классе, так как свойство Color
описано в классе TGeomFigure}
end;
Destructor TGeomFigure.Destroy; {Заголовок описательной
части деструктора}
Begin
Inherited Destroy; {Вызов деструктора родительского класса}
end;
Procedure UsingFigure; {Описание процедуры, использующей объект класса TGeomFigure}
Var
Figure: TGeomFigure;
Begin
Figure := TGeomFigure.Create(3); {Создание экземпляра класса TGeomFigure}
Figure.Draw; {Вызов метода Draw}
Figure.Color:= 13; {Изменение значения свойства Color}
Figure.Free; {Разрушение объекта, автоматический вызов деструктора Destroy}
end;
End.
ПОЛИМОРФИЗМ
Совместимость объектов
Очевидно, что при наследовании классов друг от друга количество свойств и методов увеличивается от класса к классу (или, как минимум, не уменьшается). Все объекты некоторого класса могут иметь доступ к методам и свойствам, реализованных в тех классах, от которых он унаследован. В результате такого свойства объектов появляется теоретическая возможность присвоить переменной-ссылке на экземпляр класса реальную ссылку на экземпляр другого класса. Причем присваиваемый объект должен быть экземпляром класса, находящимся ниже по иерархии, чем тот, который был указан при описании переменной.
|
|
|
|
|
|
Дата добавления: 2018-04-04; просмотров: 283; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!