Ansicht
Dokumentation

ABENINHERITANCE_REDEFINITION - INHERITANCE REDEFINITION

ABENINHERITANCE_REDEFINITION - INHERITANCE REDEFINITION

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Redefinition von Methoden

Jede Unterklasse enthält die Komponenten aller Klassen, die im Vererbungsbaum zwischen ihr und dem Wurzelknoten liegen. Die Sichtbarkeit einer Komponente ist immer gleich und kann nicht geändert werden. Es besteht aber die Möglichkeit, die öffentlichen und geschützten Instanzmethoden aller vorangehenden Oberklassen mit dem Zusatz REDEFINITION der Anweisung METHODS zu redefinieren, um sie an die gewünschte Spezialisierung anzupassen. Dabei kann die Schnittstelle einer redefinierten Methode nicht verändert werden. Die Methode wird lediglich unter gleichem Namen neu implementiert. Konstruktoren können nicht redefiniert werden, sondern es gelten spezielle Regeln.

Die Deklaration der Methode liegt weiterhin bei der Oberklasse und auch ihre vorhergehende Implementierung bleibt dort erhalten. Die Implementierung der Redefinition wird bei der Unterklasse zusätzlich erzeugt und verschattet die Implementierung der Oberklasse. Eine redefinierte Methode arbeitet mit den privaten Attributen der Unterklasse und nicht mit eventuellen gleichnamigen privaten Attributen der Oberklasse.

Jede Referenz, die auf ein Objekt der Unterklasse zeigt, verwendet die redefinierte Methode, auch wenn sie mit Bezug auf eine Oberklasse typisiert wurde. Dies gilt insbesondere auch für die Selbstreferenz me. Wenn beispielsweise eine Oberklassenmethode m1 einen Aufruf $[me->$]m2( ) enthält und m2 in einer Unterklasse redefiniert wird, führt der Aufruf von m1 in einer Instanz der Oberklasse zur Ausführung der ursprünglichen Methode m2 und der Aufruf von m1 in einer Instanz der Unterklasse zur Ausführung der redefinierten Methode m2.

Innerhalb einer redefinierten Methode kann über super->meth auf die verschattete Methode zugegriffen werden, z.B. um deren Funktionalität zu übernehmen und zu ergänzen.






BAL_S_LOG - Application Log: Log header data   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 2489 Date: 20240523 Time: 184513     sap01-206 ( 80 ms )