Type
Location = class
X, Y: Integer;
Procedure Init (InitX, InitY: Integer);
Function GetX: Integer;
Function GetY: Integer;
End;
Point = class (Location) {Point успадковує від Location}
Visible: Boolean;
End;
Цей процес, в результаті якого один тип успадковує властивості іншого типу, називається спадкуванням. Спадкоємець називається похідним типом (нащадком), а тип, від якого здійснюється спадкування, називається прабатьківських типом. У даному прикладі Location - прабатьківський тип, а Point - похідний тип (нащадок). Клас-нащадок автоматично успадковує всі поля, методи і властивості класу-предка і може доповнюватись новими. Але разом з тим видалити або перевизначити поля класу-предка у класу-нащадка неможливо. Отже, чим далі за ієрархією який-небудь клас знаходиться від батьківського класу, тим більше полів він має.
У Object Pascal усі класи є нащадками класу TObect.
Використання наслідування сприяє зменшенню кількості коду, створеного для опису схожих сутностей, а також сприяє написанню більш ефективного та гнучкого коду. Ієрархія:
type location=class
x, y:integer; procedure init(X1,Y1:integer);
function getX:integer; function gety:integer;
end;
point=class(location)
procedure init(X1,Y1:integer); visible:boolean; procedure show; procedure hide;
procedure shift(X1,Y1:integer); end;
square=class(point)
side:integer;{Сторона квадрата}
procedure init(X1,Y1,side1:integer);
procedure show; procedure hide;
procedure shift(X1,Y1:integer);
procedure explode(Step:integer); end;