SAP® Documentation

Single view

ABAPMETHODS_DEFAULT - METHODS DEFAULT

rdisp/max_wprun_time - Maximum work process run time   ABAP Short Reference  
This documentation is copyright by SAP AG.
SAP E-Book

METHODS - DEFAULT

Short Reference



Syntax

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

Effect

The addition DEFAULT makes the explicit implementation of an interface method optional and defines a default behavior for calls of non-implemented methods. It cannot be used in classes, only in interfaces. Any instance methods and static methods can be defined as optional except for constructors and test methods.

A class that implements an interface with the statement INTERFACES can implement its optional methods, but this is not mandatory. The additions IGNORE or FAIL define the behavior that applies when an optional interface method of an object or class is called at runtime and this object or class is not implemented explicitly.

  • When a non-implemented optional interface method defined with the addition IGNORE is defined, the behavior is the same as when it is implemented with an empty body. In particular, all actual parameters are initialized that receive values from formal parameters using pass by value.
  • Calls of a non-implemented optional interface method defined using the addition FAIL raise an exception of the class CX_SY_DYN_CALL_ILLEGAL_METHOD. If this exception is not handled, the runtime error CALL_METHOD_NOT_IMPLEMENTED occurs.

The default behavior defined using DEFAULT also applies to the redefinition of an inherited optional interface method using the addition REDEFINITION. A subclass that redefines an optional interface method does not need to implement this method explicitly. If the implementation is missing, the default behavior is applied along a path of the inheritance tree until an explicit implementation occurs.

Notes

  • The DEFAULT addition can also be used for BAdI methods.
  • The default behavior defined using DEFAULT FAIL that applies to calls of a non-implemented optional method matches the behavior that applies when a non-implemented non-optional method of a normal global interface is called. In a BAdI interface on the other hand, DEFAULT IGNORE matches the default behavior of the CALL BADI statement.
  • If an optional interface method is redefined in a subclass, it needs to be implemented explicitly in this subclass as well. The default behavior does not usually meet expectations here.

Example

The class class implements the interface intf without implementing its optional methods. A call of the non-implemented static method m1 raises a (handled) exception due to the addition FAIL. A call of the non-implemented instance method m2 does not execute any statements due to the addition IGNORE, but does set their return value r to 0.

INTERFACE intf.
  CLASS-METHODS m1 DEFAULT FAIL.
  METHODS       m2 DEFAULT IGNORE
                   RETURNING VALUE(r) TYPE i.
ENDINTERFACE.

CLASS class DEFINITION.
  PUBLIC SECTION.
    INTERFACES intf.
    ALIASES m1 FOR intf~m1.
    ALIASES m2 FOR intf~m2.
ENDCLASS.

CLASS class IMPLEMENTATION.
ENDCLASS.

DATA oref TYPE REF TO class.

START-OF-SELECTION.

  TRY.
      class=>m1( ).
    CATCH cx_sy_dyn_call_illegal_method INTO DATA(exc).
      cl_demo_output=>display( exc->get_text( ) ).
  ENDTRY.

  cl_demo_output=>display( NEW class( )->m2( ) ).






Fill RESBD Structure from EBP Component Structure   CL_GUI_FRONTEND_SERVICES - Frontend Services  
This documentation is copyright by SAP AG.

Length: 4978 Date: 20200120 Time: 113101     sap01-206 ( 40 ms )

Our Service

Looking for Support? Questions?

The

Consolut

Callback-Service

Leave us your contact details and we will call you back. Panels marked with * are mandatory.