Jeśli w deklaracji metody wyspecyfikowano taki sam identyfikator metody i sygnaturę parametrów jak w metodzie odziedziczonej, ale nie użyto dyrektywy override, nowa deklaracja po prostu ukrywa odziedziczoną bez pokrywania jej. Obydwie metody istnieją w potomnej klasie, gdzie nazwa metody jest statyczna. Przykład:
type
T1 = class(TObject)
procedure Act; virtual;
end;
T2 = class(T1)
procedure Act; // Act jest redeklarowane, ale nie pokryte
end;
var
SomeObject: T1;
begin
SomeObject := T2.Create;
SomeObject.Act; // aktywuje T1.Act
end;