Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

*&---------------------------------------------------------------------*

*& Report ZRP_OOPS_ENCAPSULATION1


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
" Encapsulation: Data Hiding + Abstraction
" Data Hiding: Private section - Hide the method or variable from outside the world
" Abstraction: Only method defination, No implementation.
* implemationation in sub class
" Abstarct method need to be defained in only Abstract class only/
* An Abstract class may have one or more Abstarct methods
" Abstrat method need to be defained in either Public or Protected section
*----------------------------------------------------------------------*
REPORT zrp_oops_encapsulation1.

*----------------------------------------------------------------------*
* CLASS lcl_mobile DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_mobile DEFINITION ABSTRACT.

PUBLIC SECTION.
METHODS: make_calls,
send_sms,
camera_func ABSTRACT, "Only Defination
touchscr ABSTRACT."Only Defination

PRIVATE SECTION.
DATA: sys_detail.

ENDCLASS. "lcl_mobile DEFINITION

*----------------------------------------------------------------------*
* CLASS lcl_mobile IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_mobile IMPLEMENTATION.
METHOD make_calls.
WRITE: / 'Calling from Mobile'.
ENDMETHOD. "make_calls

METHOD send_sms.
WRITE: / 'SMS sent'.
ENDMETHOD. "send_sms

ENDCLASS. "lcl_mobile IMPLEMENTATION


*----------------------------------------------------------------------*
* CLASS lcl_nokia DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_nokia DEFINITION INHERITING FROM lcl_mobile ABSTRACT.
PUBLIC SECTION.
METHODS: memory_slot.
ENDCLASS. "lcl_nokia DEFINITION

*----------------------------------------------------------------------*
* CLASS lcl_nokia IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_nokia IMPLEMENTATION.

METHOD memory_slot.
write: / '512 MB memory slot available'.
ENdmethod.

ENDCLASS. "lcl_nokia IMPLEMENTATION

CLASS lcl_nokiaN10 DEFINITION INHERITING FROM lcl_nokia.


PUBLIC SECTION.

METHODs: camera_func REDEFINITION,


touchscr REDEFINITION.
ENDCLASS.

class lcl_nokian10 IMPLEMENTATION.


METHOD camera_func.
WRITE: / 'Camera function is available in NOKIA with 16MP'.
endmethod.

METHOD touchscr.
write: / 'Touch screen function available in Nokia N10'.
ENDMETHOD.
ENDCLASS.

DATA: lo_mobile TYPE REF TO lcl_mobile,


lo_nokia TYPE REF TO lcl_nokia,
lo_nokian10 TYPE REF TO lcl_nokian10.

START-OF-SELECTION.

CREATE OBJECT lo_nokian10.

lo_nokian10->make_calls( ).
lo_nokian10->send_sms( ).
lo_nokian10->camera_func( ).
lo_nokian10->touchscr( ).
lo_nokian10->memory_slot( ).

You might also like