Zitat von
Hansa:
wahrscheinlich mußt du gleich "public" verwenden. Außerdem besteht ein Unterschied zwischen Lesen und schreiben.
Warum das denn?
@Topic
Die Unterscheidung zwischen private oder protected ist eine reine Designfrage.
Wenn du es für inkonsistent ansiehst, dass ein Nachfahre diesen Wert ändert -> private, ansonsten halt protected.
Wählst du private, kannst du den Wert zum Bleistift über den Constructor setzen.
kleines Bsp.
Delphi-Quellcode:
program Miep;
{$APPTYPE CONSOLE}
type
Base = class
private fName :string;
public
property Name :string read fName;
constructor Create(const pName :string);
end;
type
Person = class(Base)
private fVorname :string;
public
property Vorname :string read fVorname;
constructor Create(const pName, pVorname :string);
end;
constructor Base.Create(const pName :string);
begin
inherited Create();
fName := pName;
end;
constructor Person.Create(const pName, pVorname :string);
begin
inherited Create(pName);
fVorname := pVorname;
end;
var
testPerson :Person;
SenselessVar :string;
begin
testPerson := Person.Create('Schulz', 'Hans');
Writeln(testPerson.Name, ','#32, testPerson.Vorname);
Writeln('Zum Beenden bitte den Any-Key suchen... :P');
// frag's Pferd wie man eigentlich auf eine Eingabe wartet :gruebel:
Read(SenselessVar);
end.