Und das Andere auch noch als Beispiel:
Delphi-Quellcode:
type
TKlasseA = class
FFeld: Integer;
end;
TKlasseB = class(TKlasseA)
FFeld: Integer;
constructor Create;
end;
constructor TKlasseB.Create;
begin
FFeld := 123;
inherited FFeld := 456;
ShowMessage(Format('%d %d', [FFeld, inherited FFeld]))
end;
Aber da aus unerfindlichen Gründen inherited nicht bei Feldern funktioniert, noch schnell ein Property oder Getter/Setter dazwischen.
Delphi-Quellcode:
type
TKlasseA = class
FFeld: Integer;
property Feld: Integer read FFeld write FFeld;
end;
TKlasseB = class(TKlasseA)
FFeld: Integer;
property Feld: Integer read FFeld write FFeld;
constructor Create;
end;
constructor TKlasseB.Create;
begin
Feld := 123;
inherited Feld := 456;
ShowMessage(Format('%d %d', [Feld, inherited Feld]))
end;
Und nun noch schnell aufrufen.
TKlasseB.Create.Free;
Aber da man Felder sowieso niemals öffentlich deklarieren sollte, sondern nur Private und in sonderfällen maximal Protected, ist das egal, denn die Sichbarkeit der Property, für den Zugriff darauf, kann man ja verschieben.