Stejne jako v jinych objektove orientovanych jazycich se nemusi nic pretypovavat - resp. udela se tam implicitni pretypovani.
Napr:
Kód:
TPrvek = class
procedure Zpracuj(co: TPrvek);
end;
TDalsiPrvek = class (TPrvek)
end;
TDalsi2Prvek = class (TPrvek)
end;
v kodu pak muzes napsat toto:
Kód:
var
prvek: TPrvek;
dalsiPrvek: TDalsiPrvek;
dalsi2Prvek: TDalsi2Prvek;
begin
prvek = TPrvek.Create();
dalsiPrvek = TDalsiPrvek.Create();
dalsi2Prvek = TDalsi2Prvek.Create();
prvek.Zpracuj(dalsiPrvek);
prvek.Zpracuj(dalsi2Prvek);
end;