Understanding Inheritance and Final Classes in ABAP: A Practical Guide with Examples
Inheritance :-
- Inheritance is creating a Sub class from Parent class.
- The concept of Inheritance allows us to derive new classes from existing classes.
- Inheritance allows a class to inherit attributes and methods from another class.
- In ABAP, you use the INHERITING FROMkeyword to specify the superclass from which a subclass will inherit.
Final Class :-
- A final class is that class which can not be inherited.
- A final class can not be inherited.
- In ABAP, you can mark a class as final using the FINALkeyword in the class definition.
- A final class cannot be subclassed, meaning you cannot create subclasses that inherit from a final class.
Note :-
- 
If we pass a final class as a Super class then we will get the error, i.e. Your class is final, It cannot have subclasses. 
let’s take a requirement to understand the Inheritance.
Requirement :-
- We need to create one parent class and one child class.
- We will define one method to display the Sales Order display using VBAK table.
- We need to declare one select option for Sales Document Number and we will display the Sales Order Details from VBAK table.
- All logic will be written in parent class and we will create the object of child class and fulfill our requirement.
Solution :-
- 
Step 1 :- Create a executable program in ABAP Editor ( SE38 ). 
- 
Step 2 :- Define a type structure for few fields from VBAK table and create a internal table and work area for the same. 
- 
Step 3 :- Define a select option to take user input. 
- 
Step 4 :- Parent Class definition with one method display Sales Order Details. 
- 
Step 5 :- Parent Class Implementation. 
- 
Step 6 :- Create a Child Class which is inheriting the above created Parent Class. 
- 
Step 7 :- In Start Of Selection create the object of child class and call the method of Parent Class from Child Class. 
- 
Step 8 :- Use factory method of CL_SALV_TABLE class to display the output in form of ALV. 
Code :-
*&---------------------------------------------------------------------*
*& Report ZAR_INHERITANCE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zar_inheritance.
TYPES: BEGIN OF ty_vbak,
         vbeln TYPE vbeln_va,
         erdat TYPE erdat,
         erzet TYPE erzet,
         ernam TYPE ernam,
         vbtyp TYPE vbtypl,
       END OF ty_vbak.
DATA : lt_vbak TYPE TABLE OF ty_vbak.
*&----------------------------------------------
*&Select Option for User Input
DATA : lv_vbeln TYPE vbeln_va.
SELECT-OPTIONS : s_vbeln FOR lv_vbeln.
*&----------------------------------------------------
*&Parent Class Definition.
CLASS parent DEFINITION.
  PUBLIC SECTION.
    METHODS : display_sales_order_details.
ENDCLASS.
*&-------------------------------------------
*&Parent Class
CLASS PARENT IMPLEMENTATION.
  METHOD display_sales_order_details.
    select vbeln erdat erzet ernam vbtyp
      from vbak
      into table lt_vbak
      where vbeln in s_vbeln.
  ENDMETHOD.
ENDCLASS.
*&-------------------------------------------
*&Creating the Child Class.
Class Child DEFINITION INHERITING FROM PARENT.
ENDCLASS.
START-OF-SELECTION.
DATA(lo_object) = new Child( ).
lo_object->display_sales_order_details( ).
TRY.
CALL METHOD cl_salv_table=>factory
  EXPORTING
    list_display   = IF_SALV_C_BOOL_SAP=>FALSE
  IMPORTING
    r_salv_table   = data(lo_disp)
  CHANGING
    t_table        = lt_vbak
    .
  CATCH cx_salv_msg.
ENDTRY.
lo_disp->display( ).
*&-----------------------------------------------------------------
*&End of  Program
*&----------------------------------------------------------------
Execute the Program :-
- Press F8.











.png) 
.png) 
 
Comments
Post a Comment