![]() |
OOP: Vererbung von Konstruktoren
Hi,
mal eine kleine Frage zu Konstruktoren. Ich habe eine Basisklasse:
Delphi-Quellcode:
(Der Konstruktor ist private, da die Klasse nur für Ableitungen ist und keine Instanz gebildet werden soll.)
TBase = class(TObject)
private FX : Integer; FY : Integer; constructor Create(X, Y: Integer); public property X: Integer read FX; property Y: Integer read FY; end; Meine Frage ist jetzt: Wenn ich weitere Klassen von TBase ableiten will, wie muss ich deren Konstruktoren gestalten?
Delphi-Quellcode:
Oder wie muss ich mir das vorstellen? Wenn ich keinen eigenen Konstruktor definiere, wird dann der von TBase genommen?
TSecond = class(TBase)
private public constructor Create(X, Y: Integer); end; constructor TSecond.Create(X, Y: Integer); begin inherited Create(X, Y: Integer): end; Ihr könnt mir sicher helfen (davon bin ich überzeugt...) :zwinker: Danke im Voraus. |
Re: OOP: Vererbung von Konstruktoren
Ja du solltest ihn auf alle Fälle aufrufen. Und auch in TBase solltest du
![]() |
Re: OOP: Vererbung von Konstruktoren
Zitat:
Zitat:
Hier stand absoluter Blödsinn. Ich sollte schlafen gehen. |
Re: OOP: Vererbung von Konstruktoren
Wie so besser? Das ist nun mal so. da gibt es kein besser oder schlechter. Wenn ich mit dem Auto fahren will, dann müssen sich die Räder auch drehen.
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
Edit: Danke. Frage beantwortet. :thumb: |
Re: OOP: Vererbung von Konstruktoren
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
Edit: Ja, Du hast recht. Danke. |
Re: OOP: Vererbung von Konstruktoren
Du kannst aber mit protected ins nächste offene Messer laufen...
Die (etwas schlampige) Implementierung von protected in Delphi ähnelt ein wenig dem internal aus c#. Alle protected Felder/Methoden sind für alle Klassen innerhalb der Unit sichtbar! |
Re: OOP: Vererbung von Konstruktoren
Zitat:
Warum kann ich die Privaten Felder einer Klasse (z.B. FBitmap: TBitmap) bei der Code-Vervollständigung sehen obwohl es entsprechende property-Elemente gibt? D.h. wenn ich auf MeineKlasse.Bitmap zugreifen will, zeigt er mir auch FBitmap an, obwohl als private deklariert. |
Re: OOP: Vererbung von Konstruktoren
Befindest du dich in der gleichen Unit? Innerhalb der gleichen Unit sind auch private Felder einer Klasse für andere sichtbar.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz