Freigeben über


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

Aktualisiert: November 2007

In dieser Lektion erfahren Sie, wie Sie auf Basis einer vorhandenen Klasse mithilfe von Vererbung eine neue Klasse erstellen.

In der realen Welt gibt es viele Objekte, denen bestimmte Eigenschaften und Verhaltensweisen gemein sind, beispielsweise sind alle Autos mit Rädern und einem Motor ausgestattet und besitzen die Fähigkeit, zu rollen und anzuhalten. Eine Reihe von Autos weisen allerdings einige weniger typische Eigenschaften auf – beispielsweise besitzen Cabrios ein Verdeck, das entweder elektronisch oder manuell versenkt werden kann.

Wenn Sie ein Objekt erstellen, das ein Auto darstellt, sollten Sie nur die Eigenschaften und Methoden definieren, die herkömmliche Eigenschaften und Verhaltensweisen abbilden. Dagegen sollten Eigenschaften, z. B. ein versenkbares Verdeck, außer Acht bleiben, da diese nicht auf alle Autos zutreffen.

Mithilfe von Vererbung können Sie eine Cabrioklasse erstellen, die von der Autoklasse abgeleitet ist. Dabei werden alle Eigenschaften der Autoklasse geerbt und die speziell für Cabrios zutreffenden Eigenschaften und Verhaltensweisen hinzugefügt.

Vererben aus einer vorhandenen Klasse

Mit der Inherits–Anweisung wird eine neue Klasse, eine so genannte abgeleitete Klasse, deklariert, die auf einer vorhandenen Klasse, der Basisklasse, basiert. Abgeleitete Klassen erben die in der Basisklasse definierten Eigenschaften, Methoden, Ereignisse, Felder und Konstanten. Der folgende Code veranschaulicht, wie eine abgeleitete Klasse deklariert wird.

Class DerivedClass
    Inherits BaseClass
End Class

Die neue Klasse, DerivedClass, kann nun instanziiert werden, und ihre Eigenschaften und Methoden können genau wie die der BaseClass aufgerufen werden. Bei Bedarf können Sie neue Eigenschaften und Methoden hinzufügen, die nur für diese neue Klasse gelten. Sehen Sie sich dazu beispielsweise die in der vorherigen Lektion erstellte Persons-Klasse an.

Angenommen Sie möchten eine Klasse mit Baseballspielern erstellen: Neben den bereits in der Persons-Klasse definierten Eigenschaften besitzen Baseballspieler einige spezielle Eigenschaften, z. B. eine Nummer und eine Position. Statt diese Eigenschaften der Persons-Klasse hinzuzufügen, erstellen Sie eine neue abgeleitete Klasse, die von Persons erbt. Anschließend fügen Sie der abgeleiteten Klasse die neuen Eigenschaften hinzu.

Übung

So erstellen Sie eine abgeleitete Klasse

  1. Öffnen Sie das in der vorherigen Lektion erstellte Persons-Projekt. Wenn Sie das Projekt nicht gespeichert haben, gehen Sie zu Testen einer Klasse zurück, und schließen Sie die Prozeduren ab.

  2. Wählen Sie im Projektmappen-Explorer den Projektknoten Persons aus.

  3. Klicken Sie im Menü Projekt auf Klasse hinzufügen.

  4. Geben Sie im Dialogfeld Neues Element hinzufügen im Feld Name den Text Players ein, und klicken Sie dann auf Hinzufügen.

    Dem Projekt wird ein neues Klassenmodul hinzugefügt.

  5. Fügen Sie im Code-Editor direkt unter der Zeile Public Class Players folgenden Code hinzu:

    Inherits Persons
    
  6. Zum Definieren der beiden neuen Eigenschaften fügen Sie folgenden Code hinzu:

    Private numberValue As Integer
    Private positionValue As String
    Public Property Number() As Integer
        Get
            Number = numberValue
        End Get
        Set(ByVal value As Integer)
            numberValue = value
        End Set
    End Property
    Public Property Position() As String
        Get
            Position = positionValue
        End Get
        Set(ByVal value As String)
            positionValue = value
        End Set
    End Property
    
  7. Klicken Sie im Menü Datei auf Alle speichern.

Testen der Players-Klasse

Sie haben jetzt eine Players-Klasse erstellt, die von der Persons-Klasse abgeleitet wurde. In der folgenden Prozedur erstellen Sie ein neues Programm, um die Players-Klasse zu testen.

So erstellen Sie ein Testprojekt für die Klasse

  1. Zeigen Sie im Menü Datei auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Wählen Sie im Dialogfeld Neues Projekt hinzufügen im Bereich Vorlagen die Option Windows-Anwendung aus.

  3. Geben Sie PlayerTest in das Feld Name ein, und klicken Sie dann auf OK.

  4. Das neue Windows Forms-Projekt wird nun dem Projektmappen-Explorer hinzugefügt, und ein neues Formular wird angezeigt.

  5. Wählen Sie im Projektmappen-Explorer das PlayerTest-Projekt aus, und klicken Sie dann im Menü Projekt auf die Option Als Startprojekt festlegen.

  6. Wählen Sie im Projektmappen-Explorer das PlayerTest-Projekt aus, und klicken Sie dann im Menü Projekt auf die Option Verweis hinzufügen.

    Das Dialogfeld Verweis hinzufügen wird geöffnet.

  7. Klicken Sie auf die Registerkarte Projekte, wählen Sie Persons aus, und klicken Sie dann auf OK.

  8. Doppelklicken Sie auf das Formular, um den Code-Editor zu öffnen, und geben Sie dann die folgende Deklaration direkt unter der Zeile Public Class Form1 ein.

    Dim player1 As New Persons.Players
    Dim player2 As New Persons.Players
    
  9. Damit werden zwei neue Instanzen der Players-Klasse deklariert.

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

So testen Sie die abgeleitete Klasse

  1. Wählen Sie im Projektmappen-Explorer aus dem PlayerTest-Projekt Form1 aus, und klicken Sie dann im Menü Ansicht auf die Option Code.

  2. Fügen Sie im Code-Editor den folgenden Code zur Form1_Load-Ereignisprozedur hinzu.

    With player1
        .FirstName = "Andrew"
        .LastName = "Cencini"
        .Number = 43
        .Position = "Shortstop"
    End With
    With player2
        .FirstName = "Robert"
        .LastName = "Lyon"
        .Number = 11
        .Position = "Catcher"
    End With
    
  3. Wählen Sie im Projektmappen-Explorer aus dem PlayerTest-Projekt Form1 aus, und klicken Sie dann im Menü Ansicht auf die Option Designer.

  4. Ziehen Sie aus der Toolbox zwei Button-Steuerelemente auf das Formular.

  5. Wählen Sie das erste Button-Steuerelement aus, und legen Sie dann im Fenster Eigenschaften die Text-Eigenschaft auf At Bat fest.

  6. Wählen Sie das zweite Button-Steuerelement aus, und legen Sie dann im Fenster Eigenschaften die Text-Eigenschaft auf On Deck fest.

  7. Doppelklicken Sie auf die erste Schaltfläche (At Bat), um den Code-Editor zu öffnen, und geben Sie dann im Button1_Click-Ereignishandler den folgenden Code ein:

    MsgBox(player1.Position & " " & player1.FullName & ", #" & _
      CStr(player1.Number) & " is now at bat.")
    

    Beachten Sie, dass Sie die FullName-Methode verwenden, die von der Basisklasse Persons geerbt wurde.

  8. Fügen Sie im Button2_Click-Ereignishandler folgenden Code hinzu:

    MsgBox(player2.Position & " " & player2.FullName & ", #" & _
      CStr(player2.Number) & " is on deck.")
    
  9. Drücken Sie F5, um das Programm auszuführen. Klicken Sie auf die einzelnen Schaltflächen, um die Ergebnisse zu betrachten.

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

Nächste Schritte

In dieser Lektion haben Sie erfahren, wie Sie eine vorhandene Klasse vererben und die abgeleitete Klasse erweitern können. Weitere Informationen über Vererbung finden Sie unter Genauere Betrachtung: Überschreiben von Membern. Wahlweise können Sie auch zur nächsten Lektion übergehen und mehr zum Thema Auflistungen erfahren.

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

Siehe auch

Konzepte

Grundlagen der Vererbung