Jon Jagger
jon@jaggersoft.com
Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specificationpreviousnextprevious at this levelnext at this level 17 Classesprevious at this levelnext at this level 17.1 Class declarationsprevious at this levelnext at this level 17.1.1 Class modifiersprevious at this levelnext at this level 17.1.1.1 Abstract classes Paragraph 11 The abstract modifier is used to indicate that a class is incomplete and that it is intended to be used only as a base class. 2 An abstract class differs from a non-abstract class in the following ways: Paragraph 21 When a non-abstract class is derived from an abstract class, the non-abstract class must include actual implementations of all inherited abstract members, thereby overriding those abstract members. [Example: In the example
abstract class A  
{  
   public abstract void F();  
}  
abstract class B: A  
{  
   public void G() {}  
}  
class C: B  
{  
   public override void F() {  
      // actual implementation of F  
   }  
}  
the abstract class A introduces an abstract method F. Class B introduces an additional method G, but since it doesn't provide an implementation of F, B must also be declared abstract. Class C overrides F and provides an actual implementation. Since there are no abstract members in C, C is permitted (but not required) to be non-abstract. end example]
{ JSL }
Jagger Software Ltd
Company # 4070126
VAT # 762 5213 42
Valid HTML 4.01Valid CSS