NotInheritable Classes
The opposite side of the design coin from MustInherit is
NotInheritable. Just as classes
marked with MustInherit are considered abstract,
classes marked with NotInheritable are considered
sealed
. Although an abstract class is intended
to be derived-from and to provide a template for its subclasses to
follow, a sealed class does not allow classes to derive from it at
all. The NotInheritable
keyword placed before the
class declaration precludes derivation. Classes are most often marked
NotInheritable
to prevent accidental inheritance.
If the declaration of Window in Example 6-3 is
changed from MustInherit
to
NotInheritable
, the program will fail to compile.
If you try to build this project, the compiler will return the
following error message:
C:\...Module1.vb(13): 'NotInheritable' classes cannot have members declared 'MustOverride'.
Microsoft recommends using NotInheritable
“when it will not be necessary to create derived
classes”[11] and also
when your class consists of nothing but shared methods and
properties.
[11] Visual Studio .NET Combined Collection: Base Class Usage Guidelines.
Get Programming Visual Basic .NET, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.