Forums Neueste Beiträge
 

Verständnisfrage Konstruktor und Vererbung

16/07/2009 - 21:09 von Josef Morlo | Report spam
Hallo zusammen,

ich bin bislang bei der Vererbung davon ausgegangen, dass, sofern keine
parametrisierten Konstruktoren vorliegen, VB selbsttàtig einen
Standardkonstruktor für die Basisklasse erstellt bzw. aufruft. Korrekt?

Bei einem erneuten Durchgang durch K.Löffelmann, VS 2005 stoße ich auf
folgende Passagen (in Zusammenhang mit einem 'Custom Control'):


<Zitat>
Public Class FocusedColoredTextBox
Inherits TextBox
[...]
Sub New()
'NIE VERGESSEN, gerade bei Steuerelementen!
'Den Basiskonstruktor aufrufen!
MyBase.New()

</Zitat>

Wenn ich obiges richtig verstanden habe: würde denn nicht auch im Beispiel
der Konstruktor der Basisklasse implizit aufgerufen werden, wenn man
'MyBase.New() wegließe?
Ich habe den Basiskonstruktor probeweise auskommentiert und stelle keine
Funktionsbeeintràchtigung fest.

Wo ist mir da was entgangen oder wo ist mein Verstàndnis schief?

Danke für Klàrungshilfen und Gruß

Josef Morlo
 

Lesen sie die antworten

#1 Harald M. Genauck
16/07/2009 - 22:22 | Warnen spam
Hallo Josef,

ich bin bislang bei der Vererbung davon ausgegangen, dass, sofern
keine
parametrisierten Konstruktoren vorliegen, VB selbsttàtig einen
Standardkonstruktor für die Basisklasse erstellt bzw. aufruft.
Korrekt?

Bei einem erneuten Durchgang durch K.Löffelmann, VS 2005 stoße ich
auf
folgende Passagen (in Zusammenhang mit einem 'Custom Control'):

<Zitat>
Public Class FocusedColoredTextBox
Inherits TextBox
[...]
Sub New()
'NIE VERGESSEN, gerade bei Steuerelementen!
'Den Basiskonstruktor aufrufen!
MyBase.New()

</Zitat>

Wenn ich obiges richtig verstanden habe: würde denn nicht auch im
Beispiel
der Konstruktor der Basisklasse implizit aufgerufen werden, wenn man
'MyBase.New() wegließe?
Ich habe den Basiskonstruktor probeweise auskommentiert und stelle
keine
Funktionsbeeintràchtigung fest.

Wo ist mir da was entgangen oder wo ist mein Verstàndnis schief?



Dein Verstàndnis ist korrekt.

Warum Kollege Löffelmann das seinerzeit an dieser geschrieben hat (und
nach wie vor in der Ausgabe zu VB 2008 schreibt), weiß ich nicht - im
Text dazu und drumherum ist auch keine Begründung/Erlàuterung zu
finden. Im Gegenteil, in der neueren Ausgabe (die àltere habe ich nicht
vorliegen) schreibt er in den Grundlagen zu Klassen und Konstruktoren
selber, dass "abgeleitete Klassen automatisch den Standardkonstruktor
der Basisklasse aufrufen".


Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen