0

如果理解以下代码的第二行有问题:

Dim locSecondClass As New SecondClass
Dim locFirstClass As FirstClass = locSecondClass

Public Class FirstClass
    Public Overridable Function aFunktion() As String
        Return "First Class"
    End Function
End Class

Public Class SecondClass
    Inherits FirstClass
    Public Overrides Function aFunktion() As String
        Return "Second Class"
    End Function
End Class

里面有什么locFirstClass?如果它的类型是FirstClass但是locSecondClass被复制到其中?Inherits First Class也是抄进locFirstClass的?如果类SecondClass有一个不存在的函数/方法会发生什么FirstClass

4

2 回答 2

0

FirstClass是 的基类SecondClass。永远不会出现某些可用的东西FirstClass(不是私有的)在SecondClass.

于 2013-10-05T14:09:07.100 回答
0

不涉及复制,而是 locFirstClass 引用与 locSecondClass 相同的实例。但是 locFirstCLass 只知道它引用的是 FirstClass,因此只能调用 FirstClass 上存在的方法。

但是,当 aFunktion 被声明Overridable时,程序会在运行时确定对象的实际类型,并在这种情况下调用该方法返回"Second Class"

于 2013-10-05T14:10:14.800 回答