Ihr habt doch beide Recht.
Ihr habt in TBase eine Eigenschaft AString. Diese ist public (oder published). Diese Sichtbarkeit
von TBase kann nicht verringert werden! Wenn also in
TDescendant ein AString als
private steht, so hat das auf die
Public-Sichtbarkeit von
TBase.Astring keinen Einfluß. Das Astring, auf welches in Pseudemys Nelsonis Code zugegriffen wird, ist das von TBase. Das ist zu sehen, wenn man mit der Maus im Code auf AString geht ("prop TBase.AString: String - Unit2.pas ...").
In diesem Konstrukt und aus Unit1 heraus greift man also mittels TDescendant.AString in Wirklichkeit auf TBase.AString zu - ganz so, als wäre AString in TDescendant überhaupt nicht deklariert (also einfach nur geerbt) worden.
AString ist aber sehr wohl in TDescendant private, jedoch hat der Nachfahre TDescendant damit nicht die Sichtbarkeit von TBase.AString verschlechtert.