Section 11.5. NotInheritable Classes

   

11.5 NotInheritable Classes

The opposite side of the design coin from abstract is not inheritable . Although an abstract class is intended to be derived from and to provide a template for its subclasses to follow, a not-inheritable 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 not-inheritable to prevent accidental inheritance.

If the declaration of Window in Example 11-3 is changed from MustInherit to NotInheritable (eliminating the MustOverride keyword from the DrawWindow( ) declaration as well), 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" [1] and also when your class consists of nothing but shared methods and properties.

[1] Visual Studio .NET Combined Collection: Base Class Usage Guidelines.

   


Learning Visual Basic. NET
Learning Visual Basic .Net
ISBN: 0596003862
EAN: 2147483647
Year: 2002
Pages: 153
Authors: Jesse Liberty

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net