Что произойдет, если базовый метод вызывает переопределенный метод в VB? - PullRequest
0 голосов
/ 11 июля 2011

Рассмотрим следующий пример:

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

Когда Main() вызывает cls.GenerateReport(), будет ли переменная Col набором цифр или букв? Я надеюсь, что он распознает, что cls является экземпляром ExtendedClass, и вызовет переопределенный метод и вернет буквы.

1 Ответ

1 голос
/ 11 июля 2011

Это будет набор букв, так как вы переопределили метод. Тем не менее, где вы объявили GetItemCollection? Вам все еще нужна переменная экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...