原谅我实在是不知道该怎么描述这个问题了,尝试搜索不知道合适的关键词。
在一个类(User)里面的某个属性可能是基类( Base ),也可能是派生类( NewBase )
那么写 User 的这个属性(daz)的时候,只能写成 Base (否则无法访问到属性 bar )
但是在调用这个属性(daz)的时候,是按照 Base 的定义写的
相关方法的重载也选择的是 Base 的,而不是其派生类的的 Foo,尽管写了 overloads
请问这个该怎么办?
Class Base
public bar as integer
Function Overridable Foo() as Integer
return 0
End Function
End Class
Class NewBase : Inherit Base
Function Overloads Foo()
return 1
End Function
EndClass
Class User
Public daz as Base
Sub Xxx()
if daz.bar > 0 then
daz.Foo()
end if
End Sub
End Class
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.