Monday, January 29, 2018

Interface

·         Interface is a collection of Methods and attributes.
·         An interface contain only definition no implementation.
·         For Interface we can define the reference, but we cannot create object for Interface.
·         We can declare same interface in any number of classes under public section.
·         Interface Components are always access through object.
·         An interface is also known as pure abstract class, because all methods in interface are abstract.
·         Interface contain abstract Methods always in public section only.            
·         Object of a class can be assigned to interface reference if the class implements all methods of that interface.
·         Syntax of Declaring the Interface.
Interface <interface Name>.
------------
-----------

Endinterface.

Example:
      REPORT ZINTERFACE.

   ******Interafce.
   INTERFACE IF1.
         DATA N1 TYPE I.
         METHODS METHOD1.
   ENDINTERFACE.

   *****Declare Class.
  CLASS CL1 DEFINITION.
       PUBLIC SECTION.
           METHODS METHOD1.
       INTERFACES IF1.
  ENDCLASS.

  *****Implementation Class.
  CLASS CL1 IMPLEMENTATION.
  *****Implement Class Method.
        METHOD METHOD1.
             WRITE 'This is class Method...!'.
        ENDMETHOD.

 *****Implement Interface Method.
        METHOD IF1~METHOD1.
            WRITE'This is Interface Method...!'.
        ENDMETHOD.
  ENDCLASS.

START-OF-SELECTION.
****Create Refernce for Class.
     DATA CL1_REF TYPE REF TO CL1.
*****Create Object for Class.
     CREATE OBJECT CL1_REF.
*****Call Method in Class.
     CALL METHOD CL1_REF->METHOD1.
*****Call Method for Interface.
     CALL METHOD CL1_REF->IF1~METHOD1.

Output:











Example 2:

REPORT ZINTERFACE.

*****Structure Declaration.
TYPES BEGIN OF TY_T001,
                  BUKRS  TYPE BUKRS,
                  BUTXT  TYPE BUTXT,
                  ORT01  TYPE ORT01,
                  LAND1  TYPE LAND1,
              END OF TY_T001.

*****Internal Table and Workarea Declaration.
DATA T_T001   TYPE STANDARD TABLE OF TY_T001,
              W_T001 TYPE TY_T001.

*****Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
  PARAMETERS P_BUKRS TYPE BUKRS.
SELECTION-SCREEN END OF BLOCK A1.

*****Declare Interface.
INTERFACE IF1.
  METHODS DISPLAY.
ENDINTERFACE.

*****Declare Class.
CLASS GET_DATA DEFINITION.
  PUBLIC SECTION.
    METHODS GET_T001 IMPORTING I_BUKRS TYPE BUKRS.
    INTERFACES IF1.
ENDCLASS.

*****Implement GET_DATA Class.
CLASS GET_DATA IMPLEMENTATION.
*****Implement Class Method.
  METHOD GET_T001.
    REFRESH T_T001.
    SELECT BUKRS
                  BUTXT
                 ORT01
                 LAND1
      FROM T001 INTO TABLE T_T001 WHERE BUKRS I_BUKRS.
  ENDMETHOD.

*****Implement Interface Method.
  METHOD IF1~DISPLAY.
    CLEAR W_T001.
    LOOP AT T_T001 INTO W_T001.
      WRITE / W_T001-BUKRS,
                        W_T001-BUTXT,
                        W_T001-ORT01,
                        W_T001-LAND1.
    ENDLOOP.
  ENDMETHOD.

ENDCLASS.

START-OF-SELECTION.

  DATA RDT   TYPE REF TO GET_DATA,  "Reference for Get Data Class
                RIDIS TYPE REF TO IF1.         "Refence for Interface.

*****Create Object for Class
  CREATE OBJECT RDT.

*****Call the Method.
  CALL METHOD RDT->GET_T001
  EXPORTING
     I_BUKRS P_BUKRS.

******Call Interface Method to Display Data.
  CALL METHOD RDT->IF1~DISPLAY.

Output:



No comments:

Post a Comment