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( ).