![](/user_photo/2706_HbeT2.jpg)
- •22)Windows- приложение
- •23.Проект приложения в Delphi.
- •24.Приложение в Delphi.
- •25.Структура программы проекта.
- •26.Структура модуля.
- •27. Модули в Delphi.
- •29.Класс как тип данных.
- •31. Базовый класс всех объектов – Tobject.
- •32. Объектные переменные.
- •37.Наследование.
- •38.Статические методы.
- •39.Виртуальные методы.
- •40.Другие виды методов.
- •41.Конструктор и деструктор, указатели на объекты.
- •42. Полиморфные объекты.
- •44.Делегирование обработчиков.
- •46. Исключительные ситуации.
- •49.Граф.Определения.
- •50. Визуализация графа.
- •51.Алгоритмы в графах.
- •52.Построение минимального остовного дерева в графе.
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. Таким образом, при использовании
статических методов нельзя конкретно указать,
какой из имеющихся по линии наследования
нескольких методов с одним именем требуется
вызвать. Статические методы, а также любые поля в объектах-потомках ведут себя одинаково:
вы можете без ограничений перекрывать старые имена и при этом изменять тип методов. Код нового статического метода полностью перекрывает (заменяет собой) код старого метода.