ABAP Héritage - Méthodes et classes abstraites et finales


Exemple

Information

Les ajouts ABSTRACT et FINAL aux méthodes et aux déclarations de classe que vous permettent de définir des méthodes abstraites et finales ou des classes.

Une méthode abstraite est définie dans une classe abstraite et ne peut pas être implémentée dans cette classe. À la place, il est implémenté dans une sous-classe de la classe. Les classes abstraites ne peuvent pas être instanciées.

Une méthode finale ne peut pas être redéfinie dans une sous-classe. Les classes finales ne peuvent pas avoir de sous-classes. Ils concluent un arbre d'héritage.


Implémentation de classe:

CLASS lcl_abstract DEFINITION ABSTRACT.
    PUBLIC SECTION.
        METHODS: abstract_method ABSTRACT,
                 final_method FINAL
                 normal_method.
                
ENDCLASS.

CLASS lcl_abstract IMPLEMENTATION.
    METHOD final_method.
        "This method can't be redefined in child class!
    ENDMETHOD.

    METHOD normal_method.
        "Some logic
    ENDMETHOD.

        "We can't implement abstract_method here!

ENDCLASS.

CLASS lcl_abap_class DEFINITION INHERITING FROM lcl_abstract.
    PUBLIC SECTION.
        METHODS: abstract_method REDEFINITION,
                 abap_class_method.
ENDCLASS.

CLASS lcl_abap_class IMPLEMENTATION.
    METHOD abstract_method.
        "Abstract method implementation
    ENDMETHOD.

    METHOD abap_class_method.
        "Logic
    ENDMETHOD.
ENDCLASS.

Exemple d'appel de méthode:

DATA lo_class TYPE REF TO lcl_abap_class.
CREATE OBJECT lo_class.

lo_class->abstract_method( ).
lo_class->normal_method( ).
lo_class->abap_class_method( ).
lo_class->final_method( ).