type t1 = class procedure p1(x: T; y: U); virtual := exit; end; t2 = class(t1) procedure p1(x: UU; y: TT); override; begin end; end; begin end.