Ansicht
Dokumentation

ABAPMETHODS_DEFAULT - METHODS DEFAULT

ABAPMETHODS_DEFAULT - METHODS DEFAULT

Vendor Master (General Section)   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

METHODS, DEFAULT

Kurzreferenz



METHODS meth ... DEFAULT IGNORE$|FAIL ...

Wirkung

Der Zusatz DEFAULT macht die explizite Implementierung einer Interfacemethode optional und definiert ein Standardverhalten für den Aufruf nicht-implementierter Methoden. Er ist nur in Interfaces, nicht in Klassen möglich. Alle Instanzmethoden und statische Methoden außer Konstruktoren und Testmethoden können als optional definiert werden.

Eine Klasse, die ein Interface mit der Anweisung INTERFACES implementiert, kann dessen optionale Methoden implementieren, muss aber nicht. Die Zusätze IGNORE oder FAIL definieren das Verhalten, wenn zur Laufzeit eine optionale Interfacemethode eines Objekts bzw, einer Klasse aufgerufen wird, die nicht explizit implementiert ist:

  • Beim Aufruf einer nicht-implementierten optionalen Interfacemethode, die mit dem Zusatz IGNORE definiert ist, verhält diese sich so, als sei sie mit einem leeren Rumpf implementiert. Insbesondere werden alle Aktualparameter initialisiert, die Werte von Formalparametern mit Wertübergabe entgegennehmen.
  • Der Aufruf einer nicht-implementierten optionalen Interfacemethode, die mit dem Zusatz FAIL definiert ist, führt zu einer Ausnahme der Klasse CX_SY_DYN_CALL_ILLEGAL_METHOD und deren Nichtbehandlung zum Laufzeitfehler CALL_METHOD_NOT_IMPLEMENTED.

Das mit DEFAULT definierte Standardverhalten wirkt auch für die Redefinition einer geerbten optionalen Interfacemethode mit dem Zusatz REDEFINITION. Eine Unterklasse, die eine optionale Interfacemethode redefiniert, muss diese nicht explizit implementieren. Bei fehlender Implementierung wirkt entlang eines Pfads des Vererbungsbaums solange das Standardverhalten bis eine explizite Implementierung auftritt.

Hinweise

  • Der Zusatz DEFAULT kann insbesondere auch für BAdI-Methoden verwendet werden.
  • Das mit DEFAULT FAIL definierte Standardverhalten beim Aufruf einer nicht-implementierten optionalen Methode entspricht dem Verhalten, wenn eine nicht-implementierte nicht-optionale Methode eines normalen globalen Interface aufgerufen wird. Bei einem BAdI-Interface entspricht dagegen DEFAULT IGNORE dem Standardverhalten der Anweisung CALL BADI.
  • Wenn eine optionale Interfacemethode in einer Unterklasse redefiniert wird, sollte sie in dieser auch explizit implementiert werden. Das Standardverhalten ist meist unerwartet.

Beispiel

Die Klasse class implementiert das Interface intf ohne dessen optionale Methoden zu implementieren. Der Aufruf der nicht-implementierten statischen Methode m1 führt wegen des Zusatzes FAIL zu einer Ausnahme, die behandelt wird. Der Aufruf der nicht-implementierten Instanzmethode m2 führt wegen des Zusatzes IGNORE zwar keine Anweisungen aus, setzt aber deren Rückgabewert r auf 0.






BAL_S_LOG - Application Log: Log header data   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3938 Date: 20240523 Time: 130122     sap01-206 ( 96 ms )