REPORT zcl_oops_test1.
*----------------------------------------------------------------------*
* INTERFACE intf
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE intf.
METHODS details.
ENDINTERFACE. "intf
*----------------------------------------------------------------------*
* CLASS cl_test DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test DEFINITION.
PUBLIC SECTION.
INTERFACES intf.
METHODS address.
PRIVATE SECTION.
DATA ph_no TYPE i.
ENDCLASS. "cl_test DEFINITION
*----------------------------------------------------------------------*
* CLASS cl_test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test IMPLEMENTATION.
METHOD intf~details.
WRITE: / 'Name - Sandhya, Ph No - ', ph_no.
ENDMETHOD. "intf~details
METHOD address.
ADD 12345 TO ph_no.
ENDMETHOD. "Address
ENDCLASS. "cl_test IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS cl_test1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 DEFINITION.
PUBLIC SECTION.
INTERFACES intf.
METHODS location.
PRIVATE SECTION.
DATA distance TYPE i.
ENDCLASS. "cl_test1 DEFINITION
*----------------------------------------------------------------------*
* CLASS cl_test1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 IMPLEMENTATION.
METHOD intf~details.
WRITE: / 'Location - PSN, City - Bangalore, Distance from Home - ',distance.
ENDMETHOD. "intf~details
METHOD location.
ADD 30 TO distance.
ENDMETHOD. "location
ENDCLASS. "cl_test1 IMPLEMENTATION
DATA: ph_no1 TYPE REF TO cl_test,
distance1 TYPE REF TO cl_test1,
intf1 TYPE REF TO intf,
intf_tab TYPE TABLE OF REF TO intf.
START-OF-SELECTION.
CREATE OBJECT: ph_no1, distance1.
CALL METHOD: ph_no1->address,
distance1->location.
APPEND: ph_no1 TO intf_tab,
distance1 TO intf_tab.
LOOP AT intf_tab INTO intf1.
CALL METHOD intf1->details.
ENDLOOP.
*----------------------------------------------------------------------*
* INTERFACE intf
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
INTERFACE intf.
METHODS details.
ENDINTERFACE. "intf
*----------------------------------------------------------------------*
* CLASS cl_test DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test DEFINITION.
PUBLIC SECTION.
INTERFACES intf.
METHODS address.
PRIVATE SECTION.
DATA ph_no TYPE i.
ENDCLASS. "cl_test DEFINITION
*----------------------------------------------------------------------*
* CLASS cl_test IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test IMPLEMENTATION.
METHOD intf~details.
WRITE: / 'Name - Sandhya, Ph No - ', ph_no.
ENDMETHOD. "intf~details
METHOD address.
ADD 12345 TO ph_no.
ENDMETHOD. "Address
ENDCLASS. "cl_test IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS cl_test1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 DEFINITION.
PUBLIC SECTION.
INTERFACES intf.
METHODS location.
PRIVATE SECTION.
DATA distance TYPE i.
ENDCLASS. "cl_test1 DEFINITION
*----------------------------------------------------------------------*
* CLASS cl_test1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_test1 IMPLEMENTATION.
METHOD intf~details.
WRITE: / 'Location - PSN, City - Bangalore, Distance from Home - ',distance.
ENDMETHOD. "intf~details
METHOD location.
ADD 30 TO distance.
ENDMETHOD. "location
ENDCLASS. "cl_test1 IMPLEMENTATION
DATA: ph_no1 TYPE REF TO cl_test,
distance1 TYPE REF TO cl_test1,
intf1 TYPE REF TO intf,
intf_tab TYPE TABLE OF REF TO intf.
START-OF-SELECTION.
CREATE OBJECT: ph_no1, distance1.
CALL METHOD: ph_no1->address,
distance1->location.
APPEND: ph_no1 TO intf_tab,
distance1 TO intf_tab.
LOOP AT intf_tab INTO intf1.
CALL METHOD intf1->details.
ENDLOOP.
Output
No comments:
Post a Comment