Einzelnen Beitrag anzeigen

IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Von welcher Klasse ableiten?

  Alt 11. Mär 2005, 00:00
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.
  Mit Zitat antworten Zitat