« Предыдущий вопрос
Инкапсуляция

Объединение в объекте кода и данных называется инкапсуляцией. В принципе, возможно предоставит

Загрузка
Скачать Получить на телефон
например +79131234567

txt fb2 ePub html

на телефон придет ссылка на файл выбранного формата

Что это

Шпаргалки на телефон — незаменимая вещь при сдаче экзаменов, подготовке к контрольным работам и т.д. Благодаря нашему сервису вы получаете возможность скачать на телефон шпаргалки по информационным технологиям. Все шпаргалки представлены в популярных форматах fb2, txt, ePub , html, а также существует версия java шпаргалки в виде удобного приложения для мобильного телефона, которые можно скачать за символическую плату. Достаточно скачать шпаргалки по информационным технологиям — и никакой экзамен вам не страшен!

Сообщество

Не нашли что искали?

Если вам нужен индивидуальный подбор или работа на заказа — воспользуйтесь этой формой.

Следующий вопрос »
Совместимость типов объектов

Наследование до некоторой степени изменяет правила совместимости типов в Borland Pascal. Потом

Расширяющиеся объекты


Если определен порожденный тип, то методы порождающего типа наследуются, однако при желании они могут переопределяться. Для переопределения наследуемого метода попросту описывается новый метод с тем же именем, что и наследуемый метод, но с другим телом и (при необходимости) с другим множеством параметров.


Определим дочерний по отношению к TEmployee тип, представляющий работника, которому платится часовая ставка, в следующем примере:


const


PayPeriods = 26; { периоды выплат }


OvertimeThreshold = 80; { на период выплаты }


OvertimeFactor = 1.5; { почасовой коэффициент }


type


THourly = object(TEmployee)


Time: Integer;


procedure Init(AName, ATitle: string; ARate:


Real, Atime: Integer);


function GetPayAmount: Real;


end;


procedure THourly.Init(AName, ATitle: string;


ARate: Real, Atime: Integer);


begin


TEmployee.Init(AName, ATitle, ARate);


Time:= ATime;


end;


function THourly.GetPayAmount: Real;


var


Overtime: Integer;


begin


Overtime:= Time – OvertimeThreshold;


if Overtime > 0 then


GetPayAmount:= RoundPay(OvertimeThreshold * Rate


+


Rate OverTime * OvertimeFactor


* Rate)


else


GetPayAmount:= RoundPay(Time * Rate)


end;


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


Важное замечание: хотя методы могут быть переопределены, поля данных переопределяться не могут. После того как было определено поле данных в иерархии объекта, никакой дочерний тип не может определить поле данных в точности с таким же именем.