lic
Published
Projected
Private
End;
Ҳар бир бўлим ичида майдонлар, усуллар, хоссалар ва ҳодисаларни эълон қилиш мумкин.
Полиморфизм - бу ҳар хил синфларга кирувчи усуллар учун бир хил номлардан фойдаланиш имкониятидир.
Учта синф таърифи берилган бўлиб булардан бири қолган икки синф учун асос синф бўлсин:
tуре
fname: string;
constructor Create(name:string);
function info: string;
virtual;
end;
fgr:integer;
constructor Create(name:string;gr:integer);
function info: string; override; end;
fdep:string;
constructor Create(name:string;dep:string);
function info: string;
override;
end;
Бу синфларнинг ҳар бирида info усули таърифланган. Асос синфда virtual директиваси ёрдамида info усули виртуал деб эълон қилинган. Усулнинг виртуал деб эълон қилиниши авлод синфда бу усулни шахсий усул билан алмаштиришга имкон беради. Ҳосил қилинган синфда виртуал усулни алмаштирувчи усул override директиваси билан таърифланади.
Қуйида ҳар бир авлод синфда info усулининг таърифи келтирилган.
function TPerson. info:string;
begin
result : ;
end;
function TStud. info:string;
begin
result : fname гp. IntTostr(fgr);
end;
function TProf. info:string;
begin
result : fname каф. fdep;
end;
Иккала синф битта асос синфдан ҳосил қилингани учун талабалар ва домлалар рўйхатини қуйидагича таърифлаш мумкин:
list: arrayl. . SZL of TPerson;
Талабалар ва домлалар рўйхатини info усулини массив элементларига қўллаб чиқариш мумкин. Масалан:
st : ;
for i:l to SZL do
if listi о NIL
then st : st listi. Info 13;
writeln (st);
Визуал компоненталар библиотекаси
Delphi синфлари мураккаб ирархик ст
Страницы: << < 10 | 11 | 12 | 13 | 14 > >>