SAP NetWeaver AS ABAP Release 740, ©Copyright 2014 SAP AG. All rights reserved.
ABAP Keyword Documentation → ABAP − Reference → Declarations → Declaration Statements → Classes and Interfaces → ABAP Objects - Overview → Examples for ABAP Objects →ABAP Objects, Inheritance
This example demonstrates the specialization of a counter using inheritance.
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.
ADD 1 TO count.
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 = 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.
CREATE OBJECT count TYPE counter_ten.
count->set( number ).
DO 20 TIMES.
count->increment( ).
ENDDO.
cl_demo_output=>display( ).
Description
The counter_ten class is derived from counter and redefines the increment method. In counter, the visibility of the attribute count must be changed from PRIVATE to PROTECTED. In the redefined method, the nested 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. During the execution of the increment method, the redefined method of the subclass is executed using the superclass reference.