注文システムを表す次のクラスについて考えてみます。
Public Class OrderBase
Public MustOverride Property OrderItem as OrderItemBase
End Class
Public Class OrderItemBase
End Class
ここで、OrderBaseの集約的な性質を維持しながら、これらのクラスをより具体的な注文クラスのセットに拡張したいとします。
Public Class WebOrder
Inherits OrderBase
Public Overrides Property OrderItem as WebOrderItem
End Property
End Class
Public Class WebOrderItem
Inherits OrderItemBase
End Class
WebOrderクラスのOverridenプロパティにより、戻りタイプがOrderBaseで定義されたものとは異なることを示すエラーが発生します...ただし、戻りタイプはOrderBaseで定義されたタイプのサブクラスです。なぜVBはこれを許可しないのですか?