![]() |
Abgeleitete Klassen
Ich habe eine Klasse: THauptklasse mit den "public" Funktionen:
public A(); B(); C(); ... eine Klasse (die aus THauptklasse abgeleitet wurde): TKind_1 mit der Funkt: D(); ... eine 2-te Klasse( die aus THauptklasse abgeleitet wurde): TKind_2 mit der Funkt: E(); ... nun: K1: TKind_1; // Ich möchte mit K1, D() aufrufen können, aber auch A(), B(), C() K2: TKind_2; // Ich möchte mit K2, E() aufrufen können, aber auch A(), B(), C() Das Problem: mir scheint das nicht als reine OOP, mir gefällt es nicht, dass A(), B(), C() "public" sind. Wenn ich "protected" verwenden würde, dann müsste ich in jeder Kindklasse die Funktionen neu definieren?! Wie sollte ich vorgehen? |
Re: Abgeleitete Klassen
Hallo,
Zitat:
Gruß xaromz |
Re: Abgeleitete Klassen
Danke.
D.h. ich soll die Funktionen aus der Hauptklasse als protected definieren, und dann in jeder einzelne Kindklasse implementieren? Gruss conti |
Re: Abgeleitete Klassen
Butter bei die Fische! :)
Jedes sichtbare Steuerelement hat Funktionen zum Erhalten und zum Ändern der Positionskoordinaten. Es ist doch nur vernünftig, daß diese Sachen public sind, auch in den Nachfahren, denn schliesslich will man auch von aussen die Position ändern können, egal ob es sich nun um ein Editfeld oder ein DBGrid handelt! (Jaja, schon gut, die Methoden sind in Delphi nicht public, dafür aber die Properties Left und Top, die diese ansprechen... Es soll ja nur als Veranschaulichung dienen.) Cu, Udontknow Edit: Die Sichtbarkeit (private,protected,public) hat nix mit der Implementation zu tun! |
Re: Abgeleitete Klassen
Nein. Wenn du von außen auf die Funktionen zugreifen willst, musst du public verwenden. Protected nur, wenn es sozusagen eine Hilfsmethode ist, die außerhalb nicht benötigt wird.
|
Re: Abgeleitete Klassen
Hallo,
Zitat:
Gruß xaromz |
Re: Abgeleitete Klassen
Ich möchte, dass nur die abgeleiteten Klassen die Funktionen aufrufen können.
Gruss conti |
Re: Abgeleitete Klassen
Dann liegst du doch bei protected gar nicht schlecht.
|
Re: Abgeleitete Klassen
Verstanden.
Danke allen. Gruss conti |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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-2025 by Thomas Breitkreuz