我注意到一个类可以“重载”其父类的只读属性,即使在类中不允许这样做。我不明白为什么这是允许的,或者它完成了什么(如果有的话)。
Class myClass
ReadOnly Property SomeProp As Integer
Get
Return 50
End Get
End Property
End Class
Class mySubClass
Inherits myClass
Overloads ReadOnly Property SomeProp As Integer
Get
Return 12
End Get
End Property
End Class
mySubClass.SomeProp
的签名与myClass.Prop
相同 - 前者如何重载后者?
在实践中,这似乎就像Shadows
一样,是真的吗?
答案 0 :(得分:0)
本质上是的,有了重载,你将拥有myClass :: SomeProp和mySubClass :: SomeProp
给定mySubClass的一个实例,对SomeProp的调用将解析为mySubClass :: SomeProp作为最佳匹配。但是因为它是Overloads而不是Shadows,比如
Readonly Property SomeProp(x as Integer) as integer)
Get
Return 13
End Get
End Property
将无法编译,因为它缺少Overloads装饰器。