✒️ABAP POO La Herencia
ABAP POO La Herencia
HERENCIA
QUE ES LA HERENCIA
Es la capacidad que tiene una clase de heredar los atributos y métodos de otra clase.
Permite crear una nueva clase a partir de una existente, heredando la nueva clase las propiedades de la existente.
ESPECIALIZACION: relación en donde una clase (la subclase) hereda todas las principales características de otra clase (la superclase)
La subclase puede agregar nuevos componentes (atributos y métodos) y reemplazar las implementaciones con los métodos heredados.
SUPERCLASE VEHICULO (atributos: marca, modelo, nro_seris, color, nro_vehiculos ) (métodos: constructor, mostrar_atributos, obtener_cantidad)
SUBCLASE AUTO (atributos los de la superclase más: tipo_auto, máximo_asientos, aceleración) (métodos: los de la superclase más: obtener_tipo)
SUBLCASE CAMION (atributos los de la superclase más: carga_máxima, n_o_tanques, n_o_neumaticos) (métodos: los de la superclase más obtener_carga)
SUBLCASE AUTOBUS (atributos los de la superclase más: max_pasajetos, baño, televisión) (Metodos: los de la cuperclase mas obtener_pasajeros)
GENERALIZACION: la superclase hereda las características de las subclases.
Ventajas de la herencia:
· Los componentes comunes solo existen una única vez en la superclase, fácil mantenimiento, centralizado.
· Los componentes en la superclase están disponibles en las subclases. Evita implementaciones redundantes.
· Permite la reusabilidad del codigo.
DECLARACION DE HERENCIA
Para declarar una relación de herencia añadimos INHERITING FROM a la sentencia de definición de clase:
CLASS <nombresubclase> DEFINITION INHERITING FROM <superclase>.
LA nueva clase hereda todos los componentes de la existente.
Si no se añade ninguna declaración a la subclase, esta contiene los mismos componentes que la superclase. Solo los componentes públicos y protegidos de la superclase son visibles a la subclase.
NOTA: Aunque los componentes privados de la superclase existen en la subclase, no son visibles.
Se pueden declarar componentes privados en una subclase que tengan los mismos nombres que componentes privados de la superclase.
Cada clase, trabaja con sus propios componentes privados.
Los métodos que una subclase hereda de la superclase, usan los atributos privados de la superclase con el mismo nombre.
TIPOS DE HERENCIA
Simple: una clase puede tener más de una subclase de la cual es superclase, pero solo puede tener una superclase de la cual es subclase
Múltiple: una clase hereda de varias superclases
NOTA: en los objeto ABAP no existe el concepto de herencia múltiple. Sin embargo podemos utilizar interfaces para simular este tipo de herencia.
Nota: El nodo raíz de todos los árboles de herencia en los objetos ABAP es la clase predefinida vacía OBJECT:
OBJECT es la clase general de todas las clases posibles. No contiene atributos. No contiene métodos. Cuando se define una nueva clase no se tiene que especificar explícitamente esta clase como superclase, esta relación está definida implícitamente.
ABSTRACT y FINAL en la sentencias METHODS y CLASS permiten definir clase abstractas y finales.
Un método ABSTRACT se define en una clase ABSTRACT y no puede ser implementado en esa clase, se debe implementar en una subclase de la clase.
Las clase ABSTRACT no pueden ser instanciadas.
Un método FINAL no puede ser redefinido en una subclase
Las clases FINAL no pueden tener subclase, son las que finalizan el árbol de herencia.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para el Máster ABAP POO.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial