Abstract Class and Subclass in SAP ABAP

In SAP ABAP, an abstract class is a class that cannot be instantiated on its own and serves as a blueprint for its subclasses. It typically contains abstract methods, which are methods without an implementation in the abstract class. Subclasses should provide strong implementations for these abstract methods.

Sample Code Example:

Let’s consider an example of an abstract class representing different shapes, with an abstract method for calculating the area. Subclasses (e.g., Circle and Square) will provide their specific implementations.

CLASS abstract_shape DEFINITION ABSTRACT.
PUBLIC SECTION.
METHODS calculate_area ABSTRACT.
ENDCLASS.

CLASS abstract_shape IMPLEMENTATION.
METHOD calculate_area.
WRITE: 'Area Calculation Not Defined'.
ENDMETHOD.
ENDCLASS.

CLASS circle DEFINITION INHERITING FROM abstract_shape.
PUBLIC SECTION.
METHODS calculate_area REDEFINITION.
ENDCLASS.

CLASS circle IMPLEMENTATION.
METHOD calculate_area.
DATA radius TYPE i VALUE 5.
DATA area TYPE i.

area = COND #( WHEN sy-index = 1 THEN 3.14 * radius * radius
ELSE 0 ).

WRITE: / 'Area of Circle:', area.
ENDMETHOD.
ENDCLASS.

CLASS square DEFINITION INHERITING FROM abstract_shape.
PUBLIC SECTION.
METHODS calculate_area REDEFINITION.
ENDCLASS.

CLASS square IMPLEMENTATION.
METHOD calculate_area.
DATA side_length TYPE i VALUE 4.
DATA area TYPE i.

area = COND #( WHEN sy-index = 1 THEN side_length * side_length
ELSE 0 ).

WRITE: / 'Area of Square:', area.
ENDMETHOD.
ENDCLASS.



Output:

DATA(shape) = NEW abstract_shape( ).
shape->calculate_area( ). " Output: Area Calculation Not Defined

shape = NEW circle( ).
shape->calculate_area( ). " Output: Area of Circle: 78.5

shape = NEW square( ).
shape->calculate_area( ). " Output: Area of Square: 16



Explanation:

  • The abstract_shape class has an abstract method calculate_area without an implementation.
  • Subclasses circle and square inherit from abstract_shape and provide their own implementations for calculate_area.
  • Instantiating an object of type abstract_shape directly is not allowed.
  • The calculate_area method dynamically calls the appropriate implementation based on the actual type of the object.

In this example, abstract classes allow for the creation of a common interface while letting subclasses define their specific behavior. The output shows how polymorphism works in the context of an abstract class in SAP ABAP.

SAP ABAP | Polymorphism

Polymorphism in SAP ABAP is a core principle in Object-Oriented Programming (OOP) that enables different classes to be handled as instances of a shared class via a common interface. This allows developers to apply techniques in various ways while storing a constant user interface. In SAP ABAP, the integration of polymorphism is pivotal for augmenting code flexibility and ensuring ease of maintenance.

Table of Content

  • What is Polymorphism in SAP ABAP?
  • Types of Polymorphism in SAP ABAP:
  • Abstract Class and Subclass in SAP ABAP
  • Dynamic Type Binding in SAP ABAP
  • Conclusion:

SAP ABAP | Polymorphism

Similar Reads

What is Polymorphism in SAP ABAP?

In SAP ABAP (Advanced Business Application Programming), polymorphism refers to the ability of a single function or method to operate on different types of data or objects. Polymorphism is a fundamental concept in object-oriented programming (OOP) and is one of the four pillars of OOP, along with encapsulation, inheritance, and abstraction....

Types of Polymorphism in SAP ABAP:

In SAP ABAP, polymorphism is a fundamental concept that allows different objects to be treated as instances of the same class, enabling flexibility and code reuse. There are two main types of polymorphism in SAP ABAP:...

Abstract Class and Subclass in SAP ABAP

In SAP ABAP, an abstract class is a class that cannot be instantiated on its own and serves as a blueprint for its subclasses. It typically contains abstract methods, which are methods without an implementation in the abstract class. Subclasses should provide strong implementations for these abstract methods....

Dynamic Type Binding in SAP ABAP

Dynamic type binding is a concept related to polymorphism in SAP ABAP, specifically in the context of method calls. It involves determining the actual type of an object at runtime and dynamically binding the appropriate method based on that type. This is crucial for achieving runtime polymorphism....

Conclusion:

Polymorphism in SAP ABAP facilitates code reuse, flexibility, and adaptability. By allowing different classes to be treated as instances of the same class, polymorphism contributes to the development of more modular and maintainable software systems. Understanding dynamic type binding is crucial for harnessing the full power of polymorphism in SAP ABAP....