Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Листинг 5.15. Пример создания и разрушения объекта ⇐ ПредыдущаяСтр 5 из 5
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.
ПОЛИМОРФИЗМ Совместимость объектов
Очевидно, что при наследовании классов друг от друга количество свойств и методов увеличивается от класса к классу (или, как минимум, не уменьшается). Все объекты некоторого класса могут иметь доступ к методам и свойствам, реализованных в тех классах, от которых он унаследован. В результате такого свойства объектов появляется теоретическая возможность присвоить переменной-ссылке на экземпляр класса реальную ссылку на экземпляр другого класса. Причем присваиваемый объект должен быть экземпляром класса, находящимся ниже по иерархии, чем тот, который был указан при описании переменной.
|