Saturday, 4 March 2017

Visibility of Access Specifiers in terms of Inheritance in ABAP OOPs



REPORT  ZCL_OOPS_TEST.

CLASS cl_oops DEFINITION.

  
PUBLIC SECTION.

methodsDisplay.

PROTECTED SECTION.

METHODSDisplay1.

PRIVATE SECTION.

METHODSDisplay2.

ENDCLASS.


CLASS cl_oops IMPLEMENTATION.

  
METHOD display
" can be inherited by sub-class and can be called from outside the class.

  
WRITE:'Public Method of super class'.

  
ENDMETHOD.
METHOD display1
" Can be inherited by sub-class, but can not be called from "outside the class.

  
write:'Protected Method of super class' .

  
ENDMETHOD.

  
METHOD display2.
" Can not be inherited by sub class & can not be called from outside the "class.

  
write:'Private Method of super class' .

  
ENDMETHOD.

  
ENDCLASS.

  
class cl_sub DEFINITION INHERITING FROM cl_oops.

    
public SECTION.
    
METHODS display REDEFINITION.


    
PROTECTED SECTION.

METHODSDisplay1 REDEFINITION.

PRIVATE SECTION.

METHODSDisplay2 REDEFINITION.

 
ENDCLASS.
    
class cl_sub implementation.

      
method display.          " Can be inherited.

     
WRITE:'Public Method can be inherited by sub class' .

      
ENDMETHOD.

      
method display1.         " Can be inherited.

     
WRITE:/ 'Protected method can be inherited by sub class' .

      
ENDMETHOD.

      
method display2.         " Can not be inherited .

     
WRITE:'Private method can not be inherited by sub class' .

      
ENDMETHOD.



      
ENDCLASS.

  
DATAd1 TYPE REF TO cl_oops,
        d2 
TYPE REF TO cl_oops,
        d3 
TYPE REF TO cl_oops,
        d4 
type ref to cl_sub,
        d5 
TYPE REF TO cl_sub,
        d6 
TYPE REF TO cl_sub.

  
START-OF-SELECTION.

  
create OBJECT d1.
  
create OBJECT d2.
  
create object d3.
  
CREATE OBJECT d4.
  
CREATE OBJECT d5.
  
CREATE OBJECT d6.

  
CALL METHOD d1->display.
  
CALL METHOD d2->display1.
  
CALL METHOD d3->display2.
  
call method d4->display.
  
call method d5->display1.
  
call method d6->display2.

No comments:

Post a Comment