如果基本方法在VB中调用重写方法会发生什么?

时间:2011-07-11 16:52:33

标签: vb.net inheritance

考虑以下示例:

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是否是数字或字母的集合?我希望它会认识到clsExtendedClass的一个实例,并调用重写的方法并返回字母。

1 个答案:

答案 0 :(得分:1)

当你覆盖方法时,它将是一组字母。但是,您在哪里宣布GetItemCollection?你仍然需要一个实例变量。