Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АИСд шпора2.docx
Скачиваний:
8
Добавлен:
27.09.2019
Размер:
86.39 Кб
Скачать

37.Наследование.

Наследование – вторая важная особенность объектных типов. Список

наследников у данного класса может только

возрастать. Каждый потомок может указать

только одного предка. Однако неявно этот

потомок содержит все поля, методы и

свойства всех предков по линии наследования. Если предок не указан, то в Delphi считается, что предком является класс

TObject. Методы служат для обработки информации,

содержащейся в полях. Доступ к полям может

осуществляться без дополнительных (формальных)

параметров. Формальные параметры у методов обычно

служат для обмена информацией с другими классами.

В классе метод только объявляется. Описывается он в

разделе реализации модуля (секция Implementation). При

описании указывается имя класса-владельца и через точку

имя метода. Например:

Procedure TMyClass.AMetod(Param:AType);

Begin

End;

Внутри метода можно вызывать любые

методы предков с указанием имени предка. Ближайший предок, имеющий такое же имя, как у данного метода, может вызываться с помощью

зарезервированного слова inherited.

• Итак, для вызова метода, непосредственно

наследуемого объектом-потомком у

объекта-предка используется ключевое

слово Inherited.

• Ключевое слово располагается перед

именем вызываемого метода.

Методы синтаксически оформляются

следующим образом:

- Procedure;

- Function;

- Constructor – вид Procedure, служащий для

построения объекта, инициализации полей и

правильного вызова так называемых

виртуальных методов;

- Destructor – вид Procedure, служащий для

освобождения памяти, т.е. разрушения

объекта.

При построении объекта автоматически

объявляется дополнительная переменная

Self. Тип этой переменной совпадает с

классом, породившим данный объект.

Переменная Self является локальной и

определена только внутри данного

экземпляра класса. При необходимости внутри любого метода можно

воспользоваться этой переменной.

38.Статические методы.

По умолчанию методы являются статическими (Static). Методы в разных

классах могут меть одинаковые имена. При

вызове методов обязательно указывается

через точку имя объекта, вызвавшего данный метод. Например, пусть класс TClassType1 породил объект AnObject. Если

вызывается метод P_StaticMetod, то вызов записывается так: AnObject.P_StaticMetod. Если в классе TClassType1 непосредственно

такого метода нет, то вызывается ближайший по линии наследования метод с заданным именем. Недостаток статических методов заключается в

следующем. Пусть метод P_StaticMetod вызывает

внутри себя другой метод, например SecondMetod.

В данном случае P_StaticMetod вызовет ближайший

по программному описанию SecondMetod,

независимо от того объекта, который вызвал метод P_StaticMetod. Таким образом, при использовании

статических методов нельзя конкретно указать,

какой из имеющихся по линии наследования

нескольких методов с одним именем требуется

вызвать. Статические методы, а также любые поля в объектах-потомках ведут себя одинаково:

вы можете без ограничений перекрывать старые имена и при этом изменять тип методов. Код нового статического метода полностью перекрывает (заменяет собой) код старого метода.