All Methods of Interface must be Implemented
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.
Here if we implement the second method then it successfully runs and produces the proper output.
*&---------------------------------------------------------------------*
*& Report ZSR_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zsr_test.
*----------------------------------------------------------------------*
* 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.
DATA obj TYPE REF TO cls.
CREATE OBJECT obj.
CALL METHOD: obj->it~meth1,
obj->it~meth2.
The output is following: