Freigeben über


Genauere Betrachtung: Überschreiben von Membern

Aktualisiert: November 2007

In dieser Lektion erfahren Sie, wie ein Member einer abgeleiteten Klasse überschrieben wird.

In der vorangegangenen Lektion haben Sie gelernt, wie von einer Basisklasse geerbt und die abgeleitete Klasse mit neuen Eigenschaften erweitert wird. Möglicherweise möchten Sie einer abgeleiteten Klasse nicht nur neue Eigenschaften oder Methoden hinzufügen, sondern das Verhalten der vorhandenen Eigenschaften oder Methoden ändern bzw. überschreiben.

Sie möchten beispielsweise eine Truck-Klasse erstellen, die von einer Car-Klasse abgeleitet wird, die über eine StartEngine-Methode verfügt. Wenn der LKW über einen Dieselmotor verfügt, wird dieser unter Umständen anders als der Motor eines PKWs gestartet. In diesem Fall müssten Sie die StartEngine-Methode überschreiben und an den LKW anpassen.

Überschreiben von Eigenschaften und Methoden

Standardmäßig dürfen Eigenschaften und Methoden in einer Klasse nicht überschrieben werden. Damit eine abgeleitete Klasse eine Eigenschaft oder Methode überschreiben kann, müssen diese als überschreibbar gekennzeichnet werden, indem sie mit dem Schlüsselwort Overridable deklariert werden.

Public Overridable Property EngineType As String

Public Overridable Sub StartEngine(ByVal EngineType As String)

Wenn Eigenschaften oder Methoden, die als Overridable gekennzeichnet sind, aus einer Basisklasse geerbt werden, können Sie diese entweder unverändert beibehalten oder durch Deklarieren mit dem Schlüsselwort Overrides an Ihre Anforderungen anpassen.

Public Overrides Property EngineType As String

Public Overrides Sub StartEngine(ByVal EngineType As String)

Beispielsweise könnten Sie in der Players-Klasse, die Sie in der vorangegangenen Lektion erstellt haben, die FullName-Methode überschreiben, um stattdessen die Nummer des Spielers zu verwenden und den Code zu löschen, der den zweiten Vornamen zurückgibt.

Übung

So überschreiben Sie die FullName-Methode

  1. Öffnen Sie das in der vorherigen Lektion erstellte Persons-Projekt. Wenn Sie das Projekt nicht gespeichert haben, müssen Sie zur vorherigen Lektion, Erstellen einer Klasse auf Basis einer vorhandenen Klasse: Verwenden der Vererbung, zurückkehren und die Prozeduren abschließen.

  2. Wählen Sie im Projektmappen-Explorer den Knoten Persons.vb und anschließend im Menü Ansicht die Option Code aus.

  3. Ändern Sie im Code-Editor die Deklaration für die FullName-Methode wie folgt.

    Public Overridable Function FullName() As String
    
  4. Wählen Sie im Projektmappen-Explorer den Knoten Players.vb und anschließend im Menü Ansicht die Option Code aus.

  5. Fügen Sie der Klasse im Code-Editor den folgenden Code hinzu.

    Public Overrides Function FullName() As String
        FullName = FirstName & " " & LastName & ", #" & numberValue
    End Function
    
  6. Wählen Sie im Projektmappen-Explorer im Projekt PlayerTest den Knoten Form1.vb aus. Wählen Sie anschließend im Menü Ansicht die Option Code aus.

  7. Ändern Sie im Code-Editor den Button1_Click-Ereigniscode wie folgt.

    MsgBox(player1.Position & " " & player1.FullName & _
          " is now at bat.")
    
  8. Ändern Sie den Button2_Click-Ereigniscode wie folgt.

    MsgBox(player2.Position & " " & player2.FullName & _
          " is on deck.")
    
  9. Drücken Sie F5, um das Programm auszuführen, und klicken Sie auf jede Schaltfläche, um die Ergebnisse anzuzeigen.

    Beachten Sie, dass dieselben Ergebnisse wie zuvor angezeigt werden, obwohl Sie die nun die überschriebene FullName-Methode verwenden.

  10. Klicken Sie im Menü Datei auf Alle speichern.

Nächste Schritte

In dieser Lektion haben Sie gelernt, wie eine Methode überschrieben wird. In der nächsten Lektion erfahren Sie, wie mit Auflistungen Gruppen ähnlicher Objekte verwaltet werden.

Nächste Lektion: Verwalten von mehreren Objekten mithilfe von Auflistungen

Siehe auch

Aufgaben

Erstellen einer Klasse auf Basis einer vorhandenen Klasse: Verwenden der Vererbung

Referenz

Overridable

Overrides