伸手,继续问个 vb.net 类继承的问题:使用派生属性如何使用派生方法?

2020-04-17 17:30:03 +08:00
 phpfpm

原谅我实在是不知道该怎么描述这个问题了,尝试搜索不知道合适的关键词。

在一个类(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
780 次点击
所在节点    问与答
1 条回复
phpfpm
2020-04-17 19:19:17 +08:00
自问自答:

user.daz 不指定类型就完事儿了。。
但是代码还是很丑,只能算是能跑通。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/663518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX