ООП позволяет определить новый объект как потомок (наследник) другого, ранее определенного типа. Это означает, что новый тип автоматически получает все поля и методы ранее определенного типа, который в этом случае называется предком или родителем. В объявлении типа-потомка (наследника) должно быть указано в круглых скобках после служебного слова object имя родительского типа. Поля и методы предка могут появляться в телах методов наследников так, как если бы они были явно объявлены в объектах-наследниках. Это существенно упрощает запись схожих объектов.
Форма объявления объекта-потомка (наследника):
TYPE
Имя-типа-объекта-потомка =OBJECT(Имя-типа-объекта-предка)
Новые-поля-объекта-потомка;
Новые-методы-объекта-потомка;
END;
Предок у типа может быть только один. Он может быть потомком другого типа и т. д. Потомков у одного предка может быть много. Потомок наследует поля и методы всех своих предков.
Процесс наследования является транзитивным: если тип объекта ТуреВ -наследник типа ТуреА, а тип ТуреС - наследник типа ТуреВ, то тип объекта ТуреС также является наследником ТуреА:
Туре А------------ → Туре В → Туре С
В потомках (производных, дочерних) нельзя объявлять идентификаторы полей, определенные в одном из типов предка. На методы это ограничение не распространяется.
Объект-потомок может переопределить любой из методов, наследуемый от предков. Метод, переопределенный в типе-потомке, имеет то же имя и может иметь другие параметры. Переопределенный метод переходит ко всем последующим потомкам иерархии. Для каждого потомка действует метод, определенный в нем самом или в ближайшем объекте-предке, если в данном объекте этот метод не переопределен.
Пример простой иерархической структуры приведен на рис. 1.
Наследование - самое мощное свойство ООП. Оно позволяет строить библиотеку по принципу "от простого к сложному". Такой принцип разработки программ называется восходящим программированием. Ввод с помощью наследования нового объекта в библиотеку позволяет максимально использовать ранее созданные объекты.
При использовании ООП рекомендуется сочетание двух принципов конструирования программ: нисходящего и восходящего программирования. Методами нисходящего программирования генеральный алгоритм расчленяется на ряд относительно крупных и законченных в смысловом отношении фрагментов (модулей). А реализация этих фрагментов может производиться с использованием ООП.
Основное применение ООП - это разработка библиотек определенного направления. Примером такого применения является VCL - Visual Component Library - библиотека компонентов системы визуального программирования Delphi.