ABAP Objects: Overriding (Redefinition)

来源:互联网 发布:mac怎么用html5看视频 编辑:程序博客网 时间:2024/05/21 17:42

Lets check out how we can implement Overriding in ABAP Objects. This is also known as the Redefinition of the method.

When do we need to use the Overriding:

Overriding is useful, when we want to extend the functionality of the inherited method. For example: we have a generic class of CAR and it has method DRIVE. We derived a subclass, say COROLLA, from that class. Now, we need to change the functionality in DRIVE method of the subclass COROLLA. In this situation we can “Redefine” the method DRIVE. This redefinition of the method is called Overriding.

Code Lines

In ABAP, we have extension REDEFINTION of keyword METHODS to be able to implement the Overriding functionality.


REPORT  ZOVERRIDING.*----------------------------------------------------------------------** Definition of CAR class*----------------------------------------------------------------------*CLASS lcl_car DEFINITION.  PUBLIC SECTION.    METHODS: drive,             Color.ENDCLASS.                    "LCL_CAR DEFINITION**----------------------------------------------------------------------** Implementation of CAR Class*----------------------------------------------------------------------*CLASS lcl_car IMPLEMENTATION.  METHOD drive.    WRITE: / 'You are driving a Car'.  ENDMETHOD.                    "drive  METHOD COLOR.    WRITE: / 'Your car has BLUE color'.  ENDMETHOD.ENDCLASS.                    "LCL_CAR IMPLEMENTATION**----------------------------------------------------------------------** Definition of COROLLA - Inheriting from CAR class*----------------------------------------------------------------------*CLASS lcl_corolla DEFINITION INHERITING FROM lcl_car.  PUBLIC SECTION.    METHODS: drive REDEFINITION.ENDCLASS.                    "LCL_COROLLA DEFINITION**----------------------------------------------------------------------** Implementation of COROLLA*----------------------------------------------------------------------*CLASS lcl_corolla IMPLEMENTATION.* Here we are overriding the functionality of the drive method.* We are adding some functionality which are specific to COROLLA class  METHOD drive.    CALL METHOD super->drive.    WRITE: / 'which is Corolla',           / 'Do you like it?'.  ENDMETHOD.                    "driveENDCLASS.                    "LCL_COROLLA IMPLEMENTATION*START-OF-SELECTION.** Object for COROLLA  DATA: lo_corolla TYPE REF TO lcl_corolla.  CREATE OBJECT lo_corolla.  CALL METHOD lo_corolla->drive.  CALL METHOD lo_corolla->color.





0 0
原创粉丝点击