A class extension enables you to add extra functionality to an object COBOL class without changing the original source code. 
 
   
	 The difference between extending a class with a class extension as opposed to using inheritance is that the class extensions are inherited by all existing subclasses. For example, if class A has a subclass, class B (B INHERITS FROM A), you can add methods to class A by subclassing it to create subclass C. However, class B does not inherit the methods of class C, because it is a subclass of A. If you extend class A with a class extension, X, the effect at run time is the same as if you had changed and recompiled class A: class B inherits all the extra methods in class X.
	 
 
   
 
  General Format
 
	  
	  
 
  Syntax Rules
 
	   
	 - Extension-name-1 must not be the same as class-name-1. 
	 
- Extension-name-1 in the END CLASS header must be identical to the extension-name-1 specified in the preceding Class-ID paragraph. 
	 
- Class-name-1 must be the name of a class specified in the Class-Control paragraph. 
	 
- The Data Division of the class-body may contain an empty Object-Storage Section. The only other sections that may be specified in the Data Division of a Class Extension are the Working-Storage Section and the Linkage Section. 
	 
- Statements in the class extension may reference data declared in class-name-1 only when both the following cocnditions are true: 
		 
		  - The DATA IS PROTECTED or DATA IS RESTRICTED phrase is specified in the Class-ID paragraph of class-name-1 
		  
- The WITH DATA phrase is specified in the Class-ID paragraph of the class extension. 
		  
 
General Rules
 
	   
	 - The EXTEND clause specifies a class extension. A class extension adds methods to an object class. The methods specified in extension-name-1 are inherited by all subclasses, existing and new, of class-name-1. 
	 
- During the execution of a run unit, a COBOL call statement to extension-name-1 must be executed before any of the methods in the class extension are invoked. This registers the methods in the class extension with the OO runtime system.