uses crt; type loomaviit=^loom; loom=object nimi:string; constructor Init(uusnimi: string); procedure jutusta; virtual; procedure tutvusta; virtual; end; kassiviit=^kass; kass=object(loom) procedure jutusta; virtual; end; koeraviit=^koer; koer=object(loom) procedure jutusta; virtual; end; hiireviit=^hiir; hiir=object(loom) procedure jutusta; virtual; end; constructor loom.Init(uusnimi:string); begin nimi:=uusnimi; end; procedure loom.jutusta; begin textcolor(blue); writeln('xxx'); textcolor(lightgray); end; procedure loom.tutvusta; begin writeln('Minu nimi on ',nimi, ' ja ma teen '); jutusta; end; procedure kass.jutusta; begin writeln('njau'); end; procedure koer.jutusta; begin writeln('uuu'); end; procedure hiir.jutusta; begin sound(1000); readkey; nosound; end; var loomaaed: array[1..4] of loomaviit; i: integer; begin loomaaed[1]:=new(loomaviit, Init('Padakonn')); loomaaed[2]:=new(kassiviit, Init('Miisu')); loomaaed[3]:=new(koeraviit, Init('Pontu')); loomaaed[4]:=new(hiireviit, Init('Tralli')); for i:=1 to 4 do loomaaed[i]^.tutvusta; end.