
原谅我实在是不知道该怎么描述这个问题了,尝试搜索不知道合适的关键词。
在一个类(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 1 phpfpm OP 自问自答: user.daz 不指定类型就完事儿了。。 但是代码还是很丑,只能算是能跑通。。 |