Vererbung

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Die Verbung ist ein mächtiges Konzept objektorientierter Programmiersprachen und ein großer Vorteil gegenüber prozedualer Programmierung, wo eine vergleichbare Funktionalität nicht existiert.

Vererbung Klasse mit Kennzeichen "Final" = space

  • Eine Klasse kann nur vererbt werden, wenn sie nicht als "Final" gekennzeichnet ist.
  • Die erbende Klasse kann jedoch final kennzeichnet sein

Hier heißt die Oberklasse XXX_CL_FORMS.

Klassenvererbung2.JPG


Die Unterklasse/erbende Klasse XXX_CL_MAHN.

Klassenvererbung3.JPG

Im Coding steht dann

CLASS xxx_cl_mahn DEFINITION INHERITING FROM xxx_cl_forms.

Aufruf Constructor Oberklasse in Unterklasse

Klassenvererbung4.JPG

Hier ist die Schnittstelle der Oberklasse zu sehen.

Klassenvererbung5.JPG

Verbung Methoden und Attribute

  • Alle Methoden/Attribute der vererbenden Klasse, die die Sichtbarkeit "Public" oder "Protected" haben, werden zur erbenden Klasse vererbt. Die Methoden/Attribute, die "Private" sind, werden nicht vererbt.
  • In aller Regel sollten daher Methoden/Attribute der vererbenden Klasse nicht als "Private" gekennzeichnet werden, wenn die Klasse für eine Vererbung vorgesehen ist.

Methoden redefinieren

  • In der erbenden Klasse können ausschließlich Instanz-Methoden redifiniert werden.
  • Bei der Redefinition bleibt die Schnittstelle der Methode identisch, aber das Coding kann neu geschrieben, bzw. ergänzt werden.
  • Bei der Redefinition wird zunächst das Coding der geerbten Methode kopiert und kann dann geändert werden.
  • Da die Parameter der Methode der Oberklasse unverändert bleiben, kann man in der redefinierten Methode in der Unterklasse auch keine Parameter angeben. Die Redefinition wird hinter dem Methodennamen mit dem Zusatz "REDEFINITION" angezeigt im Definitionsteil.
METHODS methodenname REDEFINITION.

In der Implementierung der Klasse staeht das Coding der Methode.

METHOD methodenname.
 ... "neues Coding

Aufruf Originalmethode der Oberklasse (SUPER)

  • Die Originalmethode der Oberklasse kann auch angesprochen mit dem Platzhalter für die Oberklasse "SUPER", wenn die Methode in der Unterklasse redefiniert wurde. Da eine Klasse nur von einer Oberklasse erben kann, ist die Referenz auf die Oberklasse mit "SUPER" eindeutig.
CALL METHOD super->methodenname( ).

Methoden und Attribute hinzufügen

  • In der erbenden Klasse können auch Methoden und Attribute hinzugefügt werden. Es wird also eine Spezialisierung vorgenommen. Die meisten Funktionalitäten werden von der vererbenden Klasse übernommen, aber weitere Funktionalität wird in der erbenden Klasse implementiert.

Web-Links