Aber wenn Du von TDerivedClass ableitest, kannst Du auch vergessen, die InternalCleanUp zu überschreiben.
Meine Frage (oder wenn mal will auch Anregung) war, dass der Compiler in dem Fall warnt.
Delphi-Quellcode:
type
TBaseClass = class
private
procedure CommonCleanup;
protected
procedure InternalCleanup; virtual; abstract;
public
procedure Cleanup;
end;
TDerivedClass = class(TBaseClass)
protected
procedure InternalCleanup; override;
end;
TDerivedSubClass = class(TTDerivedClassClass)
procedure DoSub;
end;
procedure TBaseClass.Cleanup;
begin
CommonCleanup;
InternalCleanup;
end;