type o1 = object tex : string[10]; Procedure OutT; Procedure SetT;virtual; end; o2 = object(o1) Procedure SetT;virtual; end; procedure o1.SetT; begin tex := 'o1'; end; procedure o2.SetT; begin tex := 'o2'; end; procedure o1.OutT; begin Self.SetT; WriteLn(tex); end; var ob : ^o2; ob2 : ^o1; BEGIN New(ob); ob2 := ob; ob2.OutT; END.