Nein, es sind ja definitiv beide Felder in TClassB enthalten, die haben nur zufällig den selben Namen.
Das ursprüngliche Property wird nur verdeckt, es ist trotzdem noch vorhanden.
Delphi-Quellcode:
procedure SetzeAuftraggeberA(AItem: TClassA; const AValue: string);
begin
AItem.OBAuftraggeber := AValue;
end;
procedure SetzeAuftraggeberB(AItem: TClassB; const AValue: string);
begin
AItem.OBAuftraggeber := AValue;
end;
var
lItem: TClassB;
sHinz, sKunz: string;
begin
lItem := TClassB.Create;
SetzeAuftraggeberA(lItem, 'Hinz');
SetzeAuftraggeberB(lItem, 'Kunz');
sHinz := TClassA(lItem).OBAuftraggeber;
sKunz := lItem.OBAuftraggeber;
lItem.Free;
ShowMessage(sHinz + '&' + sKunz);
end;