Consider the following classes representing an Ordering system:
Public Class OrderBase Public MustOverride Property OrderItem as OrderItemBase End Class
You can't do that - it's changing the signature defined on the base. To do what you are trying to do you need to use generics:
Public Class OrderBase(Of T As IOrderItem) Public ReadOnly Property OrderItems As IList(Of T) End Class
My Visual Basic is rusty so hopefully that is accurate...