AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Vererbung funktioniert nicht

Ein Thema von Viktorii · begonnen am 10. Okt 2007 · letzter Beitrag vom 10. Okt 2007
 
s-off
(Gast)

n/a Beiträge
 
#5

Re: Vererbung funktioniert nicht

  Alt 10. Okt 2007, 12:41
Wenn sich die Execute der Kindklasse von der Execute der Basisklasse unterscheiden soll, dann musst Du diese in der Kindklasse ebenfalls als override deklarieren. Wenn Du das nicht tust, dann wird die Methode zwar geerbt, aber dann wird beim Aufruf die der Basisklasse genommen.

Als zusätzlicher Hinweis:
Felder, auf die in der Kindklasse direkt zugegriffen werden sollen, müssen in der Basisklasse mindestens die Sichtbarkeit 'Protected' haben, oder aber über entsprechende Properties 'veröffentlicht' werden.

Zur Sichtbarkeit sagt die Hilfe:
Zitat von BDS2006 Hilfe:
private-, protected-, public- und published-Deklarationen

Die Typdeklaration der Klasse kann drei oder vier Abschnitte enthalten, mit denen der Zugriff auf die Felder und Methoden der Klasse festgelegt wird:
Type
TClassName = Class(TObject)
public
{public-Felder}
{public-Methoden}
protected
{protected-Felder}


{protected-Methoden}
private
{private-Felder}
{private-Methoden}
end;
Im public-Abschnitt werden Felder und Methoden deklariert, die keinen Zugriffsbeschränkungen unterliegen. Klasseninstanzen und abgeleitete Klassen können auf diese Felder und Methoden zugreifen. Ein public-Element steht überall dort zur Verfügung, wo die Klasse sichtbar ist, zu der es gehört – d.h. in der Unit, in der die Klasse deklariert ist, sowie in allen anderen Units, die diese Unit verwenden.

Im protected-Abschnitt werden Felder und Methoden deklariert, die einigen Zugriffsbeschränkungen unterliegen. Ein protected-Element steht nur in der Unit zur Verfügung, in der die Klasse deklariert ist, sowie in allen Nachkommen der Klasse, unabhängig von der Unit der Nachkommenklassen.

Im private-Abschnitt werden Felder und Methoden deklariert, die strengen Zugriffsbeschränkungen unterliegen. Ein private-Element steht nur in der Unit zur Verfügung, in der es deklariert wurde. private-Elemente werden häufig innerhalb einer Klasse verwendet, um andere (public oder published) Methoden und Eigenschaften zu implementieren.

Bei Klassen, die von TPersistent abgeleitet sind, werden in einem published-Abschnitt Eigenschaften und Ereignisse deklariert, die zur Entwurfszeit verfügbar sind. Ein published-Element hat dieselbe Sichtbarkeit wie ein public-Element, aber der Compiler erzeugt Laufzeittypinformationen für die published-Elemente. published-Eigenschaften erscheinen zur Entwurfszeit im Objektinspektor.
Wenn Sie ein Feld, eine Eigenschaft oder eine Methode deklarieren, werden die neuen Elemente einem dieser vier Abschnitte hinzugefügt, womit ihre Sichtbarkeit festgelegt wird: private, protected, public oder published.
Edit: Eingangstext zur Sichtbarkeit abgeändert, da dieser missverstanden werden konnte.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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