It is possible to use a bare inherited in any method implementation, even if there is
no base method to call. Although this statement has no behavioral effect, it is misleading and
indicates a possible programming mistake.
Since the inherited keyword works regardless of whether the method is marked as
override, it can also lead to unexpected behavioral change if corresponding ancestor
methods are added later.
Remove the inherited statement:
procedure TChild.Proc(Foo: TFoo); begin inherited; // ... end;
procedure TChild.Proc(Foo: TFoo); begin // ... end;