Friends & Inheritance example in ABAP Objects
Page 1 of 1
Friends & Inheritance example in ABAP Objects
*&---------------------------------------------------------------------*
*& Report ZSAMPLE_FRIENDS_INHERITANCE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zsample_friends_inheritance.
CLASS c2 DEFINITION DEFERRED.
*----------------------------------------------------------------------*
* CLASS c1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 DEFINITION CREATE PROTECTED FRIENDS c2.
PUBLIC SECTION.
METHODS m3.
PROTECTED SECTION.
METHODS m1.
ENDCLASS. "c1 DEFINITION
*----------------------------------------------------------------------*
* CLASS c12 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c12 DEFINITION CREATE PUBLIC INHERITING FROM c1.
PUBLIC SECTION.
METHODS : m2.
DATA : obj_c2 TYPE REF TO c2.
ENDCLASS. "c12 DEFINITION
*----------------------------------------------------------------------*
* CLASS c2 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c2 DEFINITION CREATE PROTECTED FRIENDS c12.
PROTECTED SECTION.
METHODS : m1.
DATA : obj_c1 TYPE REF TO c1.
ENDCLASS. "c2 DEFINITION
*----------------------------------------------------------------------*
* CLASS c21 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c21 DEFINITION CREATE PUBLIC INHERITING FROM c2.
PUBLIC SECTION.
METHODS m2.
DATA : obj_c2 TYPE REF TO c2.
ENDCLASS. "c21 DEFINITION
*----------------------------------------------------------------------*
* CLASS c1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.
METHOD m1.
WRITE : / 'Class c1 method M1'.
ENDMETHOD. "m1
METHOD m3.
WRITE :/ 'Class C1 Method M3'.
ENDMETHOD. "m3
ENDCLASS. "c1 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c12 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c12 IMPLEMENTATION.
METHOD m2.
WRITE : / 'Class C12 Method M2'.
DATA : obj_c1 TYPE REF TO c1.
CREATE OBJECT obj_c1.
CREATE OBJECT obj_c2.
CALL METHOD obj_c1->m1.
CALL METHOD obj_c2->m1.
ENDMETHOD. "m1
ENDCLASS. "c12 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c2 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c2 IMPLEMENTATION.
METHOD m1.
WRITE : / 'Class C2 Method M1'.
CREATE OBJECT obj_c1.
CALL METHOD obj_c1->m1.
CALL METHOD obj_c1->m3.
ENDMETHOD. "m1
ENDCLASS. "c2 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c21 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c21 IMPLEMENTATION.
METHOD m2.
WRITE : / 'Class c21 Method m2'.
CREATE OBJECT obj_c2.
CALL METHOD obj_c2->m1.
CALL METHOD obj_c2->obj_c1->m1.
CALL METHOD obj_c2->obj_c1->m3.
ENDMETHOD. "m1
ENDCLASS. "c21 IMPLEMENTATION
START-OF-SELECTION.
DATA : obj_c12 TYPE REF TO c12.
DATA : obj_c21 TYPE REF TO c21.
CREATE OBJECT obj_c12.
CREATE OBJECT obj_c21.
CALL METHOD obj_c12->m2.
CALL METHOD obj_c21->m2.
*& Report ZSAMPLE_FRIENDS_INHERITANCE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zsample_friends_inheritance.
CLASS c2 DEFINITION DEFERRED.
*----------------------------------------------------------------------*
* CLASS c1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 DEFINITION CREATE PROTECTED FRIENDS c2.
PUBLIC SECTION.
METHODS m3.
PROTECTED SECTION.
METHODS m1.
ENDCLASS. "c1 DEFINITION
*----------------------------------------------------------------------*
* CLASS c12 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c12 DEFINITION CREATE PUBLIC INHERITING FROM c1.
PUBLIC SECTION.
METHODS : m2.
DATA : obj_c2 TYPE REF TO c2.
ENDCLASS. "c12 DEFINITION
*----------------------------------------------------------------------*
* CLASS c2 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c2 DEFINITION CREATE PROTECTED FRIENDS c12.
PROTECTED SECTION.
METHODS : m1.
DATA : obj_c1 TYPE REF TO c1.
ENDCLASS. "c2 DEFINITION
*----------------------------------------------------------------------*
* CLASS c21 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c21 DEFINITION CREATE PUBLIC INHERITING FROM c2.
PUBLIC SECTION.
METHODS m2.
DATA : obj_c2 TYPE REF TO c2.
ENDCLASS. "c21 DEFINITION
*----------------------------------------------------------------------*
* CLASS c1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.
METHOD m1.
WRITE : / 'Class c1 method M1'.
ENDMETHOD. "m1
METHOD m3.
WRITE :/ 'Class C1 Method M3'.
ENDMETHOD. "m3
ENDCLASS. "c1 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c12 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c12 IMPLEMENTATION.
METHOD m2.
WRITE : / 'Class C12 Method M2'.
DATA : obj_c1 TYPE REF TO c1.
CREATE OBJECT obj_c1.
CREATE OBJECT obj_c2.
CALL METHOD obj_c1->m1.
CALL METHOD obj_c2->m1.
ENDMETHOD. "m1
ENDCLASS. "c12 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c2 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c2 IMPLEMENTATION.
METHOD m1.
WRITE : / 'Class C2 Method M1'.
CREATE OBJECT obj_c1.
CALL METHOD obj_c1->m1.
CALL METHOD obj_c1->m3.
ENDMETHOD. "m1
ENDCLASS. "c2 IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS c21 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS c21 IMPLEMENTATION.
METHOD m2.
WRITE : / 'Class c21 Method m2'.
CREATE OBJECT obj_c2.
CALL METHOD obj_c2->m1.
CALL METHOD obj_c2->obj_c1->m1.
CALL METHOD obj_c2->obj_c1->m3.
ENDMETHOD. "m1
ENDCLASS. "c21 IMPLEMENTATION
START-OF-SELECTION.
DATA : obj_c12 TYPE REF TO c12.
DATA : obj_c21 TYPE REF TO c21.
CREATE OBJECT obj_c12.
CREATE OBJECT obj_c21.
CALL METHOD obj_c12->m2.
CALL METHOD obj_c21->m2.
Similar topics
» Creating multiple Objects in ABAP Objects
» Difference between Procedural ABAP and ABAP Objects
» What is ABAP Objects?
» Advantages of ABAP Objects?
» Interactive ALV Reporting using ABAP Objects in SAP
» Difference between Procedural ABAP and ABAP Objects
» What is ABAP Objects?
» Advantages of ABAP Objects?
» Interactive ALV Reporting using ABAP Objects in SAP
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|
Mon Aug 20, 2012 4:37 pm by Admin
» Difference between Type and Like
Thu Jun 07, 2012 2:40 pm by Admin
» How to handle table control fields in Module Pool program?
Wed May 09, 2012 2:41 am by govind
» Three tables inner join in SAP
Thu May 03, 2012 4:47 pm by Uma_ABAP
» Creating table type in ABAP
Sat Apr 28, 2012 9:03 pm by Uma_ABAP
» Creating user defined types and structures in ABAP
Sat Apr 28, 2012 8:55 pm by Uma_ABAP
» Creating Dynamic Internal Table and Dynamic Field catalog in SAP-ABAP
Fri Apr 27, 2012 11:00 am by Admin
» Copy Custom PF-Status from Standard program to Custom Program in ALV
Thu Apr 26, 2012 9:52 pm by Uma_ABAP
» Calculate/find number of working days between two dates in SAP
Tue Apr 24, 2012 2:06 pm by Uma_ABAP