Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Vererbung: Feld trotz private Dekl. in abgeleiteter Klas

  Alt 26. Sep 2004, 00:45
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.
  Mit Zitat antworten Zitat