Prenons l'exemple suivant:Que se passe-t-il si une méthode de base appelle une méthode substituée dans VB?
Public Class ParentClass
Public Sub GenerateReport
Dim Col As Collection
Col = GetItemCollection()
End Sub
Public Overridable Function GetItemCollection() As Collection
GetItemCollection = New Collection
GetItemCollection.Add("1")
GetItemCollection.Add("2")
GetItemCollection.Add("3")
End Function
End Class
Public Class ExtendedClass
Inherits ParentClass
Public Overrides Function GetItemCollection() As Collection
GetItemCollection = New Collection
GetItemCollection.Add("A")
GetItemCollection.Add("B")
GetItemCollection.Add("C")
End Function
End Class
Public Sub Main()
Dim cls As New ExtendedClass
cls.GenerateReport()
End Sub
Lorsque Main()
appelle cls.GenerateReport()
, est la Col
variables va être une collection de chiffres ou de lettres? J'espère qu'il reconnaîtra que cls
est une instance de ExtendedClass
et appelle la méthode substituée et renvoie les lettres.
GetItemCollection est déclaré car il s'agit du nom de la fonction et peut être utilisé en lui-même en tant qu'objet de collection. – jwatts1980
Je ne connais pas vb.net. Quoi qu'il en soit, la méthode de la classe dérivée sera appelée. – Femaref