>我注意到一个类可以"重载"其父类的只读属性,即使这在类中是不允许的。 我不明白为什么允许这样做或它完成了什么(如果有的话)。
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
一样起作用,这是真的吗?
本质上是的,通过重载,您将拥有myClass::SomeProp和mySubClass::SomeProp
给定 mySubClass 的实例,对 SomeProp 的调用将解析为 mySubClass::SomeProp 作为最佳匹配。 但是,由于它是重载而不是阴影,因此类似
Readonly Property SomeProp(x as Integer) as integer)
Get
Return 13
End Get
End Property
不会编译,因为它缺少重载装饰器。