Share via


Gewusst wie: Konvertieren von Implements-Code in eine neue Art der Vererbung

Aktualisiert: November 2007

In Visual Basic 6.0 wird die Implements-Anweisung für die Schnittstellenvererbung verwendet. Neuere Versionen von Visual Basic bieten mit der Implements-Anweisung und der Inherits-Anweisung zwei Typen der Vererbung. Dieses Thema veranschaulicht, wie Code mit diesen beiden Optionen konvertiert wird.

Der folgende Visual Basic 6.0-Code wird auf dieser Seite behandelt:

' Account class.
Private mvarBalance As Currency
Private mvarOwner As String

Public Property Let Owner(ByVal vData As String)
    mvarOwner = vData
End Property

Public Property Get Owner() As String
    Owner = mvarOwner
End Property

Public Function Deposit(ByVal amount As Currency) As Currency
End Function

' Savings class.
Private mvarBalance As Currency
Private mvarOwner As String 'local copy

Public Property Let Owner(ByVal vData As String)
    mvarOwner = vData
End Property

Public Property Get Owner() As String
    Owner = mvarOwner
End Property

Public Function Deposit(ByVal amount As Currency) As Currency
End Function

So konvertieren Sie mithilfe einer gemeinsamen Schnittstelle

  1. Führen Sie den Aktualisierungs-Assistenten aus.

    Hinweis:

    Der Aktualisierungs-Assistent ist ein Tool zum Aktualisieren einer Visual Basic 6.0-Anwendung auf Visual Basic 2008. Es wird automatisch gestartet, wenn in Visual Basic 2008 ein Visual Basic 6.0-Projekt geöffnet wird. Weitere Informationen finden Sie unter Gewusst wie: Aktualisieren eines Projekts mit dem Visual Basic-Aktualisierungs-Assistenten.

    Der Assistent wandelt die Account-Klasse in eine Schnittstelle (_Account) um und erstellt zwei Klassen, die diese Schnittstelle implementieren (Account und Savings).

    Interface _Account
        Property Owner() As String
        Function Deposit(ByVal amount As Decimal) As Decimal
    End Interface
    Friend Class Account
        Implements _Account
        Private mvarBalance As Decimal
        Private mvarOwner As String
    
        Public Property Owner() As String Implements _Account.Owner
            Get
                Owner = mvarOwner
            End Get
            Set(ByVal Value As String)
                mvarOwner = Value
            End Set
        End Property
    
        Public Function Deposit(ByVal amount As Decimal) _
            As Decimal Implements _Account.Deposit
        End Function
    End Class
    
    Friend Class Savings
        Implements _Account
    
        Private Function Account_Deposit(ByVal amount As Decimal) _
            As Decimal Implements _Account.Deposit
        End Function
    
        Private Property Account_Owner() As String _
            Implements _Account.Owner
            Get
            End Get
            Set(ByVal Value As String)
            End Set
        End Property
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  2. Der Code zum Erstellen und Verwenden einer Instanz eines Savings-Kontos könnte wie folgt aussehen.

    Dim savings As _Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Wenn Account die Basisklasse sein soll, können Sie die Assistentenausgabe abändern.

So konvertieren Sie mit Interface und Implements

  1. Führen Sie den Aktualisierungs-Assistenten aus.

  2. Löschen Sie die Account-Klasse.

  3. Benennen Sie die _Account-Klasse in Account um.

  4. Ersetzen Sie in der Savings-Klasse _Account durch Account.

    Friend Class Savings
        Implements Account
    
        Private Function Account_Deposit(ByVal amount As Decimal) _
            As Decimal Implements Account.Deposit
        End Function
    
        Private Property Account_Owner() As String Implements Account.Owner
            Get
            End Get
            Set(ByVal Value As String)
            End Set
        End Property
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  5. Der Code zum Erstellen und Verwenden einer Instanz von Savings könnte wie folgt aussehen.

    Dim savings As Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Wenn die Account-Klasse eine Basisklasse sein soll, können Sie die Assistentenausgabe ändern.

So konvertieren Sie mit Class und Inherits

  1. Führen Sie den Aktualisierungs-Assistenten aus.

  2. Löschen Sie die _Account-Schnittstelle.

  3. Entfernen Sie in den Implements-Anweisungen innerhalb der Account-Klasse Verweise auf die _Account-Klasse.

    Friend Class Account
        Private mvarBalance As Decimal
        Private mvarOwner As String
    
        Public Property Owner() As String
            Get
                Owner = mvarOwner
            End Get
            Set(ByVal Value As String)
                mvarOwner = Value
            End Set
        End Property
    
        Public Function Deposit(ByVal amount As Decimal) As Decimal
        End Function
    End Class
    
  4. Ersetzen Sie in der Savings-Klasse Implements _Account durch Inherits Account.

  5. Entfernen Sie in der Savings-Klasse den Owner-Member und den Deposit-Member.

    Friend Class Savings
        Inherits Account
    
        Public Function AddInterest() As Object
        End Function
    End Class
    
  6. Der Code zum Erstellen und Verwenden einer Instanz eines Savings-Kontos könnte wie folgt aussehen.

    Dim savings As Account
    savings = New Savings
    savings.Owner = "Jeff Pike"
    

Siehe auch

Aufgaben

Gewusst wie: Aktualisieren eines Projekts mit dem Visual Basic-Aktualisierungs-Assistenten

Referenz

Class-Anweisung (Visual Basic)

Inherits-Anweisung

Interface-Anweisung (Visual Basic)

Implements-Anweisung

Weitere Ressourcen

Vererbung in Visual Basic

Schnittstellen in Visual Basic