Einzelnen Beitrag anzeigen

scouty

Registriert seit: 27. Nov 2003
Ort: Dresden
47 Beiträge
 
#3

Re: Methodenhierarchie in der Vererbung umgehen/überspringen

  Alt 12. Jan 2004, 12:37
Also, alle Achtung die Lösung gefällt mir. Ok, ich halte Sie zwar schon für etwas umständlich – ehrlich gesagt, musste ich sie mir mehrmals durchlesen, um sie mit der Delphi-Hilfe zu dechiffrieren. Ich habe diese Funktionalität bisher noch nie verwendet, ich wusste noch gar nicht, dass es sie überhaupt gibt. Aber als ich mir das so angeschaut hatte, kam mir noch eine andere Idee. Ich habe gelernt, dass wenn ich über den Konstruktor ein Objekt erzeuge, dass dann automatisch auch die Vorläufer-Objekte erzeugt werden müssen/sollten. Deshalb sollte ja auch der Aufruf inherited immer zuerst im Methodenteil eines Konstruktors stehen. Folglich ist das Objekt des Vorläufers vorhanden in unserm Falle, wird zuerst TA erzeugt dann TB und so weiter. Theoretisch könnte ich ja auch folgendes in die Methode „Method“ von TC schreiben:

Code:
procedure TC.Method(Dummy: Integer);
begin
 TA(self).Method(Dummy);
end;
Das heißt ich sage einfach, dass ich TC als TA verwenden will. Nach meiner Logik müsste jetzt auch die Methode von TA aufgerufen werden. Natürlich habe ich das ausprobiert und es hat natürlich nicht bei mir funktioniert. Aber vielleicht kannst Du / Ihr mir sagen, wo hier mein Denkfehler liegt. Also, mir erscheint dieser Ansatz zumindest auch als eine Lösung dieses Problem. Bisher leider jedoch nur theoretisch ;o(

Noch eine Anmerkung: Er ist bei mir trotz Typumwandlung immer in die Methode von TC rein gegangen. Ich hatte quasi eine Endlosschleife programmiert, so dass ich Delphi abschießen musst, um diese zu beenden.
  Mit Zitat antworten Zitat