Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: Komponentenableitung Vererbung Property

  Alt 19. Sep 2022, 10:33
Genau, man erbt alle Eigenschaften, aber wenn sie ausgeblendet (protected) sind, ist man nicht gezwungen sie zu benutzen (nur intern oder nach public/publiched verschoben).

NumbersOnly macht beim Maskedit keinen Sinn, da es als "Text"-Edit konzipiert ist,
aber dort kannst du das "nur nummern" auch mit der Maske regeln.

Oder du leitest selber nochmal von TCustomMaskEdit/TMaskEdit ab und implementiersts das mit dem NumbersOnly.




Sowas passiert öfters mal. Einige gemeinsame Funktioninen sind in Basisklassen implementiert (noch versteckt), bzw. sie haben zumindestens die Schnittstelle dafür (aber noch keine Funktion),
und in vielen Nachfahren wird es dann sichtbar gemacht, bzw. das leere Interface (virtual/abstract) wird dann mit Code gefüllt.
Aber wer das nicht braucht, lässt es eben einfach weg und versteckt es weiterhin (protected) ... siehe TMaskEdit und NumbersOnly



Zitat:
Ich denke, ein Nachfahr erbt alle
Eigenschaften usw. vom Vorgänger und man kann z.B. ein Property, das beim Vorfahr vorhanden ist, im Nachfahr nicht
"weglassen" (jedenfalls nicht ohne Tricks...).
Im Prinzip richtig.

Klar, man kann Dinge von public/published auch wieder ins private/protected verschieben,
aber erstmal meckert dann der Compiler (manchmal funktioniert es auch einfach nicht und bleibt sichtbar ... k.A. warum)
und außerdem kommt man über einen Cast in einen Vorfahren dennoch ran.

Und außerdem wird hier nichts weggelassen, denn es war ja niemals öffentlich sichtbar, also ist alles vollkommen korrekt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Sep 2022 um 10:38 Uhr)
  Mit Zitat antworten Zitat