Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы к окр2.docx
Скачиваний:
17
Добавлен:
01.04.2025
Размер:
66 Кб
Скачать
☆

24 Вариант.

Объект – это структура, компонентами которой являются данные-поля объекта и процедуры (функции) - методы объекта. Все данные и методы инкапсулированы в одном объекте.

Определение типа ОБЪЕКТ:

TYPE ИмяОбъекта = OBJECT

Поля данных;

Заголовки методов;

END;

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

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

Type ИмяОбъектаНаследника= OBJECT(ИмяОбъектаПредка)

Новые поля объекта наследника;

Новые методы объекта наследника;

END;

Type TypeSym = OBJECT(TypeWin)

Ch:char;

Procedure INIT1(ax,ay:integer; ach:char);

Procedure SHOW1;

END;

Procedure TypeSym.INIT1;

Begin

Inherited INIT1(ax,ay);

Ch:=ach

End;

Procedure TypeSym.SHOW1;

Begin

GoToXY(x,y);

Writeln(ch)

End;

25 Вариант.

Переменную, описываемую типом ИмяОбъекта, называют экземпляром объекта:

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

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

Type TypeSymCol=OBJECT(TypeSym)

Color : Integer;

Procedure INIT1(ax,ay,acolor:integer; ach:char);

Procedure SHOW1;

End;

Procedure TypeSymCol.INIT1;

Begin

Inherited Init1(ax,ay,ach);

Color:=acolor

End;

Procedure TypeSymCol.SHOW1;

Begin

TextColor(color);

Inherited Show1

End;

Var OchCol : TypeSymCol;

Оch.Init(10,5,50,20,red);

Och.Init1(2,3,’о’);

Och.Show; Och.Show1;

OchCol.Init1(3,3,yellow,’!’);

OchCol.Show1;

Экземпляры объектов Och и OchCol вызывают различные одноимённые методы Init1 и Show1, причём метод Init1 в объектовых типах Och и OchCol имеет разное количество параметров.

26 Вариант.

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

Type

TPerson =Object

FName : string[25];

FAddress : string[25];

End;

TStud =object( TPerson)

FGroup : integer;

Procedure Print;

End;

TProf =object(TPerson)

FKaf : integer;

Procedure Print;

End;

Var Pperson: ^TPerson;

Pstud : ^TStud;

Pprof : ^TProf;

Pperson:= Pstud;

Pperson:= Pprof;