FVozrast:integer;
Protected
Function GetVozr:integer;
Procedure SetVozr(r:integer);
Public
Property Vozrast:integer
read GetVozr write SetVozr;
End;
Var
мan: TМan;
Function TМan.GetVozr:integer;
Begin result:= FVozrast; end;
Procedure TМan.SetVozr(r:integer);
Begin
if r<100 then FVozrast:=r else exit;
end;
Begin
Мan:= TМan.create;
Мan.vozrast:=188; //не позволит
Мan.vozrast:= 18; // позволит
Man.Free;
End.
Билет 9.
· ПОЛИМОРФИЗМ
Замещение метода может быть сделано как на этапе компиляции так и на этапе выполнения программы. Такое замещение называется динамическим (или виртуальным).
Синтаксис объявления таков:
Tpar=class
Procedure DoWork; virtual; [dynamic;] //метод виртуальный
End;
Tchild=class(Tpar)
Procedure DoWork; override;//надо переопределять при выпол
End;
Полиморфизм допускает инициализацию объектной переменной любым классом потомком
Type
Tpar=class
Procedure DoWork; virtual;
end;
Tchild=class(Tpar)
Procedure DoWork; override;
End;
Var
par: Tpar;
child: Tchild;
Begin
par:=Tchild.create;
par. DoWork;
end;

· Операции as и is
(man as Tman).Obed; //приведение типа
if man is Tman then …;//определение типа