Hallo,
ich schlage mich gerade mit der Vererbung von Prozeduren rum.. ich habe eine Vorfahren und eine Nachfahrenklasse.. Nun möchte ich folgendes erreichen. In der Vorfahrenklasse soll eine Prozedur deklariert sein, die etwas bestimmtest macht. Die Nachfahrenklasse soll eine Prozedur enthalten die ZUSÄTZLICH zu der Vorfahrenprozedur noch was macht. Ungefähr so:
Delphi-Quellcode:
type
Tvorfahr=class
public
number:integer;
function numbertoString(a: integer): String;
end;
Tnachfahr=class(vorfahr)
public
i:integer;
function numbertoString(a: integer): String;
end;
function Tvorfahr.numbertoString(a: integer): String;
begin
globalvariable1:=globalvariable1+a;
result:=Inttostr(number);
end;
function Tnachfahr.numberToString(a: integer): String;
begin
//mache erst das von Tvorfahr (mit selbem "a")
inc(globalvariable2,a);
resultvonTvorfahr:=resultvonTvorfahr+'.'+Inttostr(i);
end;
Wenn jetzt folgender Aufruf kommt:
Delphi-Quellcode:
test:=Tnachfahr.create;
s:=test.numbertoString;
Soll nur die zweite Prozedur aufgerufen werden (so wie das normalerweise mit "override" funktioniert") allerdings wird in der ja auf die erste Prozedur zugegriffen, sodass indirekt beide durchlaufen werden.
Ich hab schon verscuht das ergebnis aus verschiedenen TUTs zu kriegen. Wäre nett wenn ihr mein Beispiel mal so anpassen könntet, dass es akzeptiert wird vom Compiler. Ich denke, dann bin ich auch in der Lage, das auf kompliziertere Prozeduren zu übertragen.
Vielen Dank
KahPee