You can use the NotOverridable and MustOverride modifiers to control how properties and methods are overridden in derived classes.
The NotOverridable modifier defines a method of a base class that cannot be overridden in derived classes. All methods are NotOverridable unless marked with the Overridable modifier. You can use the NotOverridable modifier when you do not want to allow an overridden method to be overridden again in a derived class.
Methods defined with the MustOverride modifier have no implementation in the base class and must be implemented in derived classes. Classes that contain MustOverride methods must be marked with the MustInherit modifier.
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