Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: RTTI, Klassen Fields und Attribute

  Alt 19. Okt 2016, 18:07
Nur Property kann man redefinieren und/oder in ihrer Sichtbarkeit verschieben.
Alles andere sind komplett neue Deklarationen, egal, ob sie "zufällig" den selben Namen haben.

Ausnahme bilden Methoden, wo man die neue Deklaration per "override" zurückverlinken kann,
aber auch hier ist besonders gut erkenntlich, dass Beides existert, da man die Methode im Vorfahren per inherited immernoch aufrufen kann.

Delphi-Quellcode:
type
  TClassA = class(TParentClass)
  protected
    property OBAuftraggeber: string read ... write ...;
  end;

  TClassB = class(TClassA)
  public
    property OBAuftraggeber; // neue Sichtbarkeit (aber offiziell geht es nur "sichtbarer")
    // oder
  protected
    property OBAuftraggeber default '123'; // neuer Defaultwert (aber nur im Nachfahren)
    // oder
    property OBAuftraggeber write ...; // neuer Setter (aber nur im Nachfahren)
    // oder
    property OBAuftraggeber: string ...; // komplett neues Property, das nur zufällig gleich heißt
  end;
Man sieht, solange kein Typ angegeben wurde, wird vom alten Property geerbt.
$2B or not $2B

Geändert von himitsu (19. Okt 2016 um 18:11 Uhr)
  Mit Zitat antworten Zitat