Modificadores de Substituição
Você pode usar os modificadores NotOverridable e MustOverride em um classe base para controlar como as classes derivadas substituem suas propriedades e métodos.
O modificador NotOverridable define um método de uma classe base que não pode ser substituído em classes derivadas.Todos os métodos são NotOverridable a menos que marcados com o modificador Overridable.Você pode usar o modificador NotOverridable quando não desejar permitir que um método substituído seja substituído novamente em um classe derivada.
Métodos definidos com o modificador MustOverride não têm nenhuma implementação na classe base e devem ser implementados em classes derivadas.As classes que contêm os métodos MustOverride devem ser marcadas com o modificador MustInherit.
Exemplo
MustInherit Class BaseClass
Public MustOverride Sub aProcedure()
End Class
Class DerivedClass
Inherits BaseClass
Public NotOverridable Overrides Sub aProcedure()
' Override a procedure inherited from the base class
' and mark it with the NotOverridable modifier so that
' it cannot be overridden in classes derived from this class.
End Sub
End Class