Saturday, 4 March 2017

Multiple Inheritance using Interface in ABAP OOP



REPORT  zcl_oops_test.

*----------------------------------------------------------------------*
*       INTERFACE intf1
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE intf1.

  
METHODSname.

ENDINTERFACE.                    "intf1

*----------------------------------------------------------------------*
*       INTERFACE intf2
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE intf2.

  
METHODSdetails.

ENDINTERFACE.                    "intf2

*----------------------------------------------------------------------*
*       CLASS cl_test1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 DEFINITION.

  
PUBLIC SECTION.
    
INTERFACESintf1,
                intf2
.
ENDCLASS.                    "cl_test1 DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_test1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 IMPLEMENTATION.

  
METHOD intf1~name.
    
WRITE'Sandhya'.
  
ENDMETHOD.                    "intf1~name

  
METHOD intf2~details.
    
WRITE'Location - CG, Bangalore'.
  
ENDMETHOD                                             "intf2~details

ENDCLASS.                    "cl_test1 IMPLEMENTATION

*----------------------------------------------------------------------*
*       CLASS cl_test2 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test2 DEFINITION.

  
PUBLIC SECTION.
    
INTERFACESintf1,
                intf2
.
ENDCLASS.                    "cl_test2 DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_test2 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test2 IMPLEMENTATION.

  
METHOD intf1~name.
    
WRITE'Country - india'.
  
ENDMETHOD.                    "intf1~name

  
METHOD intf2~details.
    
WRITE'Language - English'.
  
ENDMETHOD.                    "intf2~details

ENDCLASS.                    "cl_test2 IMPLEMENTATION

*----------------------------------------------------------------------*
*       CLASS cl_test3 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test3 DEFINITION.

  
PUBLIC SECTION.
    
CLASS-METHODSselect_name IMPORTING n1 TYPE REF TO intf1,
                   select_details  
IMPORTING d1 TYPE REF TO intf2.

ENDCLASS.                    "cl_test3 DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_test3 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test3 IMPLEMENTATION.

  
METHOD select_name.
    n1
->name( ).
  
ENDMETHOD.                    "select_name

  
METHOD select_details.
    d1
->details( ).
  
ENDMETHOD.                    "select_details

ENDCLASS.                    "cl_test3 IMPLEMENTATION


START-OF-SELECTION.

  
DATAobj1 TYPE REF TO cl_test1.
  
CREATE OBJECT obj1.
  cl_test3
=>select_nameobj1 ).
  cl_test3
=>select_detailsobj1 ).

  
DATAobj2 TYPE REF TO cl_test2.
  
CREATE OBJECT obj2.
  cl_test3
=>select_nameobj2 ).
  cl_test3
=>select_detailsobj2 ).


Output

No comments:

Post a Comment