Пример программы с испльзованием ООП

{заголовок программы}
……………….
{раздел описания типов, в том числе и объектных типов tPredoc, tSon, tGrandSon }
{Обратите внимание! Экземпляры объектных типов можно описать как типизированные константы, что мы для примера и сделали ниже}
const ded: tPredoc = (Name: 'Петров Николай Иванович');
otec: tSon = (Name: 'Петров Сергей Николаевич');
vnuk: tGrandSon = (Name: 'Петров Олег Сергеевич');
{раздел описания процедур и функций, где обязательно должны быть написаны все объявленные в объектных типах методы}
begin
ded.Declaration; {вызов методов общего предка}
ded.Му Name;
writeln;
otec.Declaration;
otec.MyName(ded); { вызов методов объекта otec типа tSon}
writeln;
vnuk.Declaration; { вызов методов объекта vnuk типа tGrandSon}
vnuk.MyName (otec);
end.

Наша программа выведет на экран:

Пример вывода на экран результата

Я —предок!
Я —Петров Николай Иванович

Я —отец!
Я —Петров Сергей Николаевич
Я —сын Петров Николай Ивановича

Я —внук!
Я —Петров Олег Сергеевич
Я —сын Петров Сергей Николаевича

Обратите внимание, что в заголовке процедуры tSon. MyName в качестве параметра приведен тип данных tPredoc, а при использовании этой процедуры ей передаются переменные как типа tPredoc, так и типа tSon. Это возможно, так как пре­док совместим по типу со своими потомками. Обратное несправедливо. Если мы заменим в заголовке процедуры tSon. MyName при описании параметров тип tPredoc на tSon, компилятор укажет на несовместимость типов при использовании перемен­ной ded в строке otec. MyName (ded).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: