Mentor SAP
2017-07-14 Submitted by:- Admin

A class which defines an Interface must implement all of its methods. If any method is missing in the implementation of that class then a compile error will come.

 

Below is a program where we have defined an Interface in which we declare attribute and methods meth1 and meth2. Now after defining the Interface in a class, we implement only one method meth1. When we compile this program a syntax error comes with message implementation is missing for method meth2 as follows.

 

Now uncomment the program and execute the program as below:

REPORT zinterface_allmethod.
*----------------------------------------------------------------------*
*       INTERFACE it
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE it.
  DATA v_txt TYPE char50.
  METHODS: meth1, meth2.
ENDINTERFACE.                    "it

*----------------------------------------------------------------------*
*       CLASS cls DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cls DEFINITION.
  PUBLIC SECTION.
    INTERFACES it.
ENDCLASS.                    "cls DEFINITION

*----------------------------------------------------------------------*
*       CLASS cls IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cls IMPLEMENTATION.
  METHOD it~meth1.
    it~v_txt = 'First Interface Method'.
    WRITE / it~v_txt.
  ENDMETHOD.                                                "it~meth1

  METHOD it~meth2.
    it~v_txt = 'Second Interface Method'.
    WRITE / it~v_txt.
  ENDMETHOD.                                                "it~meth2
ENDCLASS.                    "cls IMPLEMENTATION

* Start of selection
START-OF-SELECTION.

* Data Declaration
  DATA obj TYPE REF TO cls.

* Create object
  CREATE OBJECT obj.

* Method call
  CALL METHOD: obj->it~meth1,
               obj->it~meth2.

 

Output