5.9 Konstruktoren bei Vererbung
Bei der Erzeugung eines Objekts einer abgeleiteten Klasse können Konstruktoren eingesetzt werden. Achten Sie dabei darauf, wie die Konstruktoren der Basisklasse aufgebaut sind, damit diese intern richtig aufgerufen werden können.
Zunächst eine Basisklasse mit zwei Konstruktoren im Projekt VererbungKonstruktoren:
Public Class Fahrzeug
Dim bezeichnung As String
Dim geschwindigkeit As Integer
Sub New()
bezeichnung = "(leer)"
geschwindigkeit = 0
End Sub
Sub New(b As String, g As Integer)
bezeichnung = b
geschwindigkeit = g
End Sub
[...]
End Class
Listing 5.19 Projekt »VererbungKonstruktoren«, Klasse »Fahrzeug«
Zur Erläuterung:
- Einer der beiden Konstruktoren benötigt keine Parameter. Die Eigenschaften werden mit (leer) bzw. 0 initialisiert.
- Der andere Konstruktor benötigt eine String-Variable und eine Integer-Variable. Mit den übergebenen Werten werden die Eigenschaften vorbesetzt.
Es folgt die abgeleitete Klasse, ebenfalls mit zwei Konstruktoren:
Public Class PKW
Inherits Fahrzeug
Dim insassen As Integer
Sub New()
insassen = 0
End Sub
Sub New(b As String, g As Integer, i As Integer)
MyBase.New(b, g)
insassen = i
End Sub
[...]
End Class
Listing 5.20 Projekt »VererbungKonstruktoren«, Klasse »PKW«
Zur Erläuterung:
- In dieser Klasse gibt es ebenfalls einen parameterlosen Konstruktor.
- Der andere Konstruktor benötigt eine String-Variable und zwei Integer-Variablen. Zwei der übergebenen Werte werden an die Basisklasse weitergereicht, dazu muss der passende Konstruktor aufgerufen werden. Die Basisklasse heißt von der abgeleiteten Klasse aus gesehen MyBase, ein Konstruktor heißt New(), daher lautet die Anweisung MyBase.New(...). Der dritte Wert wird in der Klasse PKW zum Vorbesetzen der eigenen Eigenschaft der Klasse PKW genutzt.
Das Programm (Ausgabe siehe Abbildung 5.10):
Public Class Form1
Private Sub cmdAnzeigen_Click(...) Handles ...
Dim fiat As New PKW("Limousine", 50, 2)
Dim peugeot As New PKW
lblAnzeige.Text = fiat.ausgabe() &
vbCrLf & peugeot.ausgabe()
End Sub
End Class
Listing 5.21 Projekt »VererbungKonstruktoren«, Nutzung der Klasse
Zur Erläuterung:
- Die beiden Objekte fiat und peugeot werden unterschiedlich erzeugt.
- Das Objekt fiat wird mit drei Werten initialisiert; somit wird der passende Konstruktor gefunden. Dieser reicht die Werte für Geschwindigkeit und Bezeichnung weiter.
- Das Objekt peugeot wird ohne Werte initialisiert. Auch hier werden beide Konstruktoren durchlaufen und Standardwerte festgehalten.
Abbildung 5.10 Nutzung verschiedener Konstruktoren
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.