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;