Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: [OOP]: sinnvolle Vererbung

  Alt 3. Sep 2004, 12:16
Da TMyList nur TKnoten kennt, musst du der Prozedur eine "runtergecastete" Instanz von TMyKnoten übergeben -->
Delphi-Quellcode:
TMyList = class
private
Wurzel: TKnoten;
public
procedure Hinzufuegen(var Neu: TKnoten);
{...}
end;

TMyNewList = class(TMyList)
private
Wurzel: TNewKnoten;
public
{...}
end;

...

//Aufruf
var
  Liste: TMyNewList;
  NeuerKnoten: TNewKnoten;
begin
  ...
  NeuerKnoten := TNewKnoten.Create;
  Liste.Hinzufügen(NeuerKnoten); //von Typ TNewKnoten, der von TKnoten abstammt
  ...
Wenn du auf irgendwas zugreifen musst, was in TNewKnoten enthalten ist, dann musst du die Proezdur neu implementieren, vielleicht geht es sogar so:
Delphi-Quellcode:
procedure TMyNewList.Hinzufuegen((var Neu: TNewKnoten);
begin
  inherited Hinzufuegen; // weiß nicht genau, vielleicht auch so: inherited Hinzufuegen(Neu);
  //Mach irgendwas mit Neu als TNewKnoten
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat