unit zv5; interface type pohlavi = (samec, samice); pzvire = ^zvire; ppes = ^pes; pkocka = ^kocka; zvire = object jmeno : string; pohl : pohlavi; vek : integer; constructor init(jm:string;p:pohlavi;v,c:integer); procedure kdojsem; procedure jakdelam; virtual; private cena :integer; end; pes = object(zvire) zubu : integer; constructor init(jm:string;p:pohlavi;v,c,z:integer); procedure kdojsem; procedure jakdelam; virtual; end; kocka = object(zvire) constructor init(jm:string;p:pohlavi;v,c:integer); procedure jakdelam; virtual; procedure kdojsem; end; var F:text; implementation constructor zvire.init(jm:string;p:pohlavi;v,c:integer); begin pohl:= p; jmeno:=jm; cena:=c; vek:=v end; procedure zvire.kdojsem; begin write(F,'jsem zvire '); write(F,jmeno); jakdelam end; procedure zvire.jakdelam; begin writeln(F,' nedelam nic') end; constructor pes.init(jm:string;p:pohlavi;v,c,z:integer); begin zvire.init(jm,p,v,c); zubu:=z end; procedure pes.kdojsem; begin write(F,'jsem pes '); write(F,jmeno); jakdelam end; procedure pes.jakdelam; begin writeln(F,' delam haf haf') end; constructor kocka.init(jm:string;p:pohlavi;v,c:integer); begin zvire.init(jm,p,v,c); end; procedure kocka.kdojsem; begin write(F,'jsem kocka '); write(F,jmeno); jakdelam end; procedure kocka.jakdelam; begin writeln(F,' delam mnau mnau') end; begin assign(F,'vyst5'); rewrite(F); end.