✒️ABAP POO El Polimorfismo
ABAP POO El Polimorfismo
Polimorfismo (Redefinicion)
Metodos con el mismo nombre pueden tener distinto comportamiento en clases diferentes.
Es hacer que un objeto se una clase se comporte como un objeto de cualquiera de sus subclases, dependiendo de la forma en que se llama a esos metodos.
La palabra clave REDEFINITION en la sentencia METHODS permite redefinir un metodo Publico o Protegido
La sobrecarga de metodos de java / c++ es un tipo especial de polimorfismo, donde se usa el
Mismo metodo, pero los parametros del metodo son diferentes.
Dentro de un metodo redefinido, si uso la referencia SUPER-> puedo acceder al metodo 'oculto' de la superclase, sin tener que recodificar esa funcionalidad de nuevo en el metodo redefinido.
Ejemplo implementacion del polimorfismo en abap
REPORT ZPRUEBA_HERENCIA_REDEFINICION.
CLASS vehiculo DEFINITION.
PUBLIC SECTION.
METHODS: asignar_km_iniciales IMPORTING value(set_value) TYPE i,
incrementar_km.
PROTECTED SECTION.
DATA km TYPE i.
ENDCLASS. "vehiculo DEFINITION
CLASS vehiculo IMPLEMENTATION.
METHOD asignar_km_iniciales.
km = set_value.
ENDMETHOD. "asignar_km_iniciales
METHOD incrementar_km.
ADD 1 TO km.
ENDMETHOD. "incrementar_km
ENDCLASS. "vehiculo IMPLEMENTATION
CLASS camion DEFINITION INHERITING FROM vehiculo.
PUBLIC SECTION.
METHODS incrementar_km REDEFINITION.
DATA km_camion TYPE i.
ENDCLASS. "camion DEFINITION
CLASS camion IMPLEMENTATION.
METHOD incrementar_km.
CALL METHOD super->incrementar_km.
WRITE / km.
km_camion = km + 100.
WRITE / km_camion.
ENDMETHOD. "incrementar_km
ENDCLASS. "camion IMPLEMENTATION
*instanciacion de las clases:
DATA: camion_mercedes TYPE REF TO vehiculo,
km_iniciales TYPE i VALUE 5.
START-OF-SELECTION.
CREATE OBJECT camion_mercedes TYPE camion.
CALL METHOD camion_mercedes->asignar_km_iniciales
EXPORTING
set_value = km_iniciales.
DO 20 TIMES.
CALL METHOD camion_mercedes->incrementar_km.
ENDDO.
 
 
 
Sobre el autor
Publicación académica de Juan Pablo Carro, en su ámbito de estudios para el Máster ABAP POO.
Juan Pablo Carro
Profesión: Analista de Sistemas - Argentina - Legajo: DB81J
✒️Autor de: 8 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Juan Carro