Moin Lodda,
Zitat:
soweit ich weiß kann man die sichtbarkeit von Eigenschaften nur erhöhen.
Stimmt, das darf auch nicht gehen, sonst könnte man beispielsweise nie sicher eine übergeordnete Klasse, als Parametertyp angeben.
Soll als Parameter beispielsweise eine Liste von Strings übergeben werden, nimmt man meist TStrings als Parametertyp, damit man sowohl eine TStringList, als auch Memo.Lines übergeben kann (beide abgeleitet von TStrings).
Könnte man jetzt die Sichtbarkeit verringern, "wüsste" der Compiler nie, welche Methoden/Eigenschaften des Parameters erlaubt sind, und welche nicht.