Está en la página 1de 7

CLASE ABSTRACTA

1. Crea una clase abstracta desde el Builder class.

Llena las caractersticas de la clase

Se agrega un atributo

Se agrega un METODO ABSTRACTO:

Defines el mtodo

Selecciona el mtodo

cambias el tipo de mtodo

Clic para cambiar el mtodo a ABSTRACTO

Verifica activa y ejecuta


mtodos.

y te daras cuenta de que no tiene atributos ni

Ya que es una clase abstracta y no se puede instanciar.

Para ello debemos crear una SUBCLASE.


2. CREAR UNA SUBCLASE DE LA CLASE ABSTRACTA:

Hacemos la herencia

de la CLASE ABSTRACTA

En la subclase encontraremos los mismos componentes de la CLASE ABSTRACTA.

Antes de activar nuestra subclase debemos de REDEFINIR EL METODO ABSTRACTO


Si no genera el siguiente error.

Al momento de redefinir el mtodo agregamos cdigo necesario:

Ejecutamos la SUBCLASE y muestra mtodo y atributos, ingresamos datos.

Listo, obtenemos el resultado

CLASE ABSTRACTA LOCAL


REPORT ZCLASE_ABSTRACTA.
* CLASS abstract DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*

CLASS lcl_abstract DEFINITION ABSTRACT."


PUBLIC SECTION.
METHODS : abstract_display ABSTRACT." Es un metodo
METHODS : display.
METHODS: final FINAL. " No puede ser redefinido.
ENDCLASS. "lcl_abstract DEFINITION
*----------------------------------------------------------------------*
* CLASS abstract IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_abstract IMPLEMENTATION.
METHOD display.
WRITE:/ 'Normal method dependent of intance'.
ENDMETHOD. "display
METHOD final.
WRITE:/ 'el metodo final No puede ser redefinido'.
ENDMETHOD.
ENDCLASS. "lcl_abstract IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_class DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_class DEFINITION INHERITING FROM lcl_abstract. " en la definicion solo
se agregan nuevos metodos y REDEFINEN METODOS DE LA INSTANCIA.
PUBLIC SECTION.
METHODS abstract_display REDEFINITION.
METHODS class_display.
ENDCLASS. "lcl_class DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_class IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_class IMPLEMENTATION.
METHOD abstract_display.
WRITE:/ 'Abstract method'.
ENDMETHOD. "abstract_display
METHOD class_display.
WRITE:/ 'method'.
ENDMETHOD. "class_display
ENDCLASS. "lcl_class IMPLEMENTATION

START-OF-SELECTION.
DATA : l_ref TYPE REF TO lcl_class.

CREATE OBJECT l_ref.


call method l_ref->abstract_display.
*Llamada a metodos sin CALL METHOD
l_ref->class_display( ).
l_ref->display( ).
l_ref->final( ).

También podría gustarte