Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: Vererbung: Wie rufe ich Klasse.Parent.Methode auf?

  Alt 23. Okt 2014, 15:19
Wie ist es möglich in TMutter.a TMutter.b aufzurufen, obwohl in TMutter ein TKind steckt?
Eigentlich stimmt hier dein Design nicht mehr. Es mag andere Ansätze geben, aber ich löse das meistens so:

Delphi-Quellcode:
  TMutter = class(TObject)
  protected
    procedure InternalB;
  public
    procedure a(x: Boolean); virtual;
    procedure b; virtual;
  end;

procedure TMutter.a(x: Boolean);
begin
  Log('TMutter.a1');
  if x then
  begin
    // b aufrufen. (Wenn Self = TKind ist, dann wird TKind.b aufgerufen.)
    b;
  end
  else
  begin
    // Hier sollte immer TMutter.b aufgerufen werden!!!
    InternalB;
  end;
  Log('TMutter.a2');
end;

procedure TMutter.InternalB;
begin
  Log('TMutter.b');
end;

procedure TMutter.b;
begin
  InternalB;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat