Wieso sollte ein nochmaliges Überschreiben nicht funkionieren? Das wäre ja gegen alles, was ich von
OOP so kenne. Gegenbeispiel:
Delphi-Quellcode:
type
TClassA = class
protected
procedure Blubb; virtual;
end;
TClassB = class(TClassA)
protected
procedure Blubb; override;
end;
TClassC = class(TClassB)
protected
procedure Blubb; override;
end;
TClassD = class(TClassC)
public
procedure Blubb; override;
end;
{ TClassA }
procedure TClassA.Blubb;
begin
ShowMessage('Bubb aus Class A');
end;
{ TClassB }
procedure TClassB.Blubb;
begin
inherited;
ShowMessage('Blubb aus Class B');
end;
{ TClassC }
procedure TClassC.Blubb;
begin
inherited;
ShowMessage('Blubb aus Class C');
end;
{ TClassD }
procedure TClassD.Blubb;
begin
inherited;
ShowMessage('Blubb aus Class D');
end;
procedure TForm5.FormCreate(Sender: TObject);
var
Dingens: TClassD;
begin
Dingens := TClassD.Create;
try
Dingens.Blubb;
finally
Dingens.Free;
end;
end;
Da kommen alle Messages schön von "oben" nach "unten" durchgeblubbert, hab ich auch nicht anders erwartet.