【发布时间】:2018-05-21 18:00:31
【问题描述】:
我更熟悉 Java 是如何处理多态的,所以我可能在 vb 中做错了
我正在尝试使用多态性和继承来拥有一个可以采用多种形式的实例, 问题是变量被实例化为父类型并初始化为子类实例,但我无法访问子属性。
下面是我想要做的一个例子:
sub main()
Dim animal as Animal 'instantiated as parent type
'some code later
animal= New Dog() 'no problems here
dim legs = animal.legs 'this works
dim fur = animal.fur 'this is an error
end sub
Public Class Animal
Property legs as integer
End Class
Public Class Dog
inherits Animal
Property fur as Boolean = True
End Class
如果我能做到这一点,那就太好了。
【问题讨论】:
-
我现在看到了,但我一直在寻找像“dim animal as Object”这样的东西,然后我可以做“animal = New Dog()”,它将成为我相信 Java 的 Dog 类类型做。愚蠢的 Java 宠坏了我。
-
由于 Object 在这种情况下工作并且不会导致错误,我只需要更加小心。我希望它能够呈现多种形式,因为它将位于一个对象中,该对象要么具有“猫”或“狗”,但不能同时具有两者,即具有类类型动物属性的类犬舍
标签: .net vb.net class inheritance polymorphism