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.