Is it possible to override a property and return a derived type in VB.NET?

Posted by Casey on Stack Overflow See other posts from Stack Overflow or by Casey
Published on 2010-05-07T17:57:08Z Indexed on 2010/05/07 18:08 UTC
Read the original article Hit count: 294

Consider the following classes representing an Ordering system:

Public Class OrderBase
    Public MustOverride Property OrderItem() as OrderItemBase
End Class

Public Class OrderItemBase
End Class

Now, suppose we want to extend these classes to a more specific set of order classes, keeping the aggregate nature of OrderBase:

Public Class WebOrder
    Inherits OrderBase        

    Public Overrides Property OrderItem() as WebOrderItem 
    End Property
End Class

Public Class WebOrderItem
    Inherits OrderItemBase
End Class

The Overriden property in the WebOrder class will cause an error stating that the return type is different from that defined in OrderBase... however, the return type is a subclass of the type defined in OrderBase. Why won't VB allow this?

© Stack Overflow or respective owner

Related posts about vb.net

Related posts about inheritance