Hallo,
entschuldigt die blöde Frage, aber mir scheint hier wirklich etwas grundlegendes entgangen zu sein:
Ausgehend von einer Basisklasse wird an eine weitere Klasse vererbt.
Delphi-Quellcode:
type TBasisKlasse = class
public
Variable: Boolean;
function TestVariable: Boolean; virtual;
end;
type TAbgeleiteteKlasse = class(TBasisKlasse)
public
procedure ModifiziereVariable;
end;
implementation
function TBasisKlasse.TestVariable: Boolean;
begin
result := Variable;
end;
procedure TAbgeleiteteKlasse.ModifiziereVariable;
begin
Variable := true;
end;
Nun erzeuge ich eine neue Instanz, lasse die Variable ändern...
Delphi-Quellcode:
var allgemeineVariable : TBasisKlasse;
begin
allgemeineVariable := TAbgeleiteteKlasse.Create;
(allgemeineVariable as TAbgeleiteteKlasse).ModifiziereVariable;
if allgemeineVariable.TestVariable then [...]
und sie ist immer false. Es scheint fast, als ob die Variablen einfach doppelt vorhanden wären und für die Methoden der abgeleiteten Klasse verdeckt. Wenn ich die Testmethode als abstrakt definiere und in der abgeleiteten Klasse ausimplementiere, tut alles wie gewohnt.
Klärt mich da mal bitte kurz auf! Danke schonmal