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
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
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
Führen Sie den Aktualisierungs-Assistenten aus.
Löschen Sie die Account-Klasse.
Benennen Sie die _Account-Klasse in Account um.
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
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
Führen Sie den Aktualisierungs-Assistenten aus.
Löschen Sie die _Account-Schnittstelle.
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
Ersetzen Sie in der Savings-Klasse Implements _Account durch Inherits Account.
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
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)
Interface-Anweisung (Visual Basic)