Студопедия
rus | ua | other

Home Random lecture






Наследование и переопределение.


Date: 2015-10-07; view: 388.


 

Наследование – это свойство объектов, позволяющее при построении нового объекта использовать уже созданные ранее объекты. Пусть, например, необходимо построить объектовый тип, управляющий геометрической фигурой – кругом. Структура информации для определения круга очень похожа на описанную выше структуру для точки, поэтому для определения круга будем иметь объектовый тип следующего вида:

Type Circle = Object (Point)

Radius: integer;

end;

Описание такого объекта осуществляется с помощью применения наследования: объект Point является родителем, а Circle – потомком. При этом новый тип автоматически получает все поля и методы ранее введенного типа и может их использовать:

Var ObCircle: Circle;

begin

ObCircle.Init (30, 40);

…………………….

Таким образом, наследование на языке Turbo Pascal может быть описано таким образом:

Type <имя нового объекта> = Object (имя объекта-родителя)

< новые поля данных>

<новые методы потомка>

end;

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

Переопределение – это свойство объектов, позволяющее переопределить в объекте-потомке методы объекта-родителя, оставив при этом прежние имена подпрограмм:

Type Circle =Object (Point)

Radius: integer;

Procedure Init (a, b, R: integer);

Procedure SwitchOn;

Procedure SwitchOff;

Procedure Move (dx, dy: integer);

Function GetR: integer;

End;

Procedure Circle.Init (a, b, R: integer);

begin

Point.Init (a, b);

Radius:=R;

end;

…………………………..

Procedure Circle.SwitchOn;

begin

v:=true;

Graph.Circle (x, y, R);

end;

…………………………

Из свойства наследования вытекают новые правила присваивания для переменной типа Object: присваивать можно не только объекты эквивалентных типов, но операция присваивания осуществляется также для типов, которые находятся в отношении наследования, причем присваивание происходит в направлении:

<родитель>::=<наследник>

При этом копируются только те поля, которые являются общими для обоих типов.

Как правило, основная часть работы по написанию объектно-ориентированных программ состоит в построении иерархии объектов.

 


<== previous lecture | next lecture ==>
Объекты и свойства инкапсуляции. | Полиморфизм. Виртуальные методы.
lektsiopedia.org - 2013 год. | Page generation: 0.552 s.