ABAP Keyword Documentation → ABAP − Reference → Declarations → Declaration Statements → Classes and Interfaces → ABAP Objects - Overview → Examples for ABAP Objects
ABAP Objects, Inheritance
This example demonstrates how a counter is specialized using inheritance.
Other versions: 7.31 | 7.40 | 7.54
Source Code
REPORT demo_inheritance.
CLASS counter DEFINITION.
PUBLIC SECTION.
METHODS:
set
IMPORTING value(set_value) TYPE i,
increment,
get
EXPORTING value(get_value) TYPE i.
PROTECTED SECTION.
DATA count TYPE i.
ENDCLASS.
CLASS counter IMPLEMENTATION.
METHOD set.
count = set_value.
ENDMETHOD.
METHOD increment.
count += 1.
ENDMETHOD.
METHOD get.
get_value = count.
ENDMETHOD.
ENDCLASS.
CLASS counter_ten DEFINITION INHERITING FROM counter.
PUBLIC SECTION.
METHODS increment REDEFINITION.
DATA count_ten TYPE c LENGTH 1.
ENDCLASS.
CLASS counter_ten IMPLEMENTATION.
METHOD increment.
DATA modulo TYPE i.
super->increment( ).
modulo = count MOD 10.
IF modulo = 0.
count_ten += 1.
cl_demo_output=>write_text( |{ count } - { count_ten }| ).
ELSE.
cl_demo_output=>write_text( |{ count }| ).
ENDIF.
ENDMETHOD.
ENDCLASS.
DATA: count TYPE REF TO counter,
number TYPE i VALUE 5.
START-OF-SELECTION.
count = NEW counter_ten( ).
count->set( number ).
DO 20 TIMES.
count->increment( ).
ENDDO.
cl_demo_output=>display( ).
Description
The class counter_ten
is derived from counter
and redefines the method increment
. In counter
,
the visibility of the attribute count
must be changed from PRIVATE
to PROTECTED
. In the redefined method, the obscured method with the pseudo reference super->
is called. The redefined method specializes the inherited method.
An object of the subclass is created to which a reference variable of the superclass type points. When
the method increment
is executed, the redefined method of the subclass is executed using the superclass reference.