Changes to subclasses are additive, that is, you cannot delete a component from a class if it was inherited from a superclass. However, you can extend a subclass as follows:
You can only redefine instance methods. Attributes, class methods, and other inherited components of a subclass cannot be redefined.
Furthermore, the methods that you want to redefine may not have been defined as final methods in the superclass. Constructor methods may not be redefined, since they are implicitly final.
A method redefinition may only extend to a new implementation of the method. The signature (names and types of the parameters) may not be changed. The interface of the redefined method must remain the same as that of the original method in the superclass.
Procedure
Adding New Components
You can define new components in all three visibility sections (public, protected, and private) of a subclass. Since both inherited and new components belong to the same namespace, you must ensure that all components in the class have unique names.
See also:
Redefining Methods
To redefine an inherited method in a subclass:
The system displays the inherited methods of all subclasses.
The ABAP source code of the original method implementation appears.
Result
You have now extended the class, and your new components are visible, as well as the public and protected components of the superclass.
If you redefine a method in a subclass, the corresponding original method in the superclass remains unchanged.
You can access all the components that are visible in the subclass in the same manner. You also access the inherited components from the superclass with their local names. If, however, you need to address components of the direct superclass, you can use the pseudoreference SUPER.