Una característica clave en la programación orientada a objetos es la reutilización de software, ya que esto es muy útil, porque si se pudiera reutilizar algo de software que ya existe, que fue probado, depurado y utilizado muchas veces, nos ahorraríamos tiempo y esfuerzo para desarrollar y probar de nuevo.
La herencia es cuando una clase (subclase) se deriva de otra (superclase), de manera que extiende su funcionalidad.
Una subclase hereda todos los miembros (campos, métodos y clases anidadas) de su superclase, como por ejemplo:
Si tenemos una clase Vehículo, esta es una superclase, ya que hereda 2 subclases y además contiene 3 campos. Las subclases Automóvil y Camión heredan a Vehículo, quiere decir que estas también tendrán los 3 campos de Vehículo y además sus campos propios.
Fuentes:
Me apoyé en tutoriales Java para la consulta de la definición herencia:
En este link, se explica otro ejemplo utilizando bibicletas, que también está entendible:
(Imagen) Con este ejemplo me quedó más clara la definición de herencia:
Polimorfismo
Es la capacidad de que una acción o método realice diferentes cosas en el objeto del que está actuando. Es decir, que varias subclases utilicen un mismo método pero de forma distinta.
Por ejemplo:
En la figura anterior se tiene la clase FiguraGeo en donde se tienen las funciones de Área y Perímetro. Las clases Triángulo, Círculo y Cuadrado, heredan de la clase FiguraGeo sus métodos. Y en la clase Main es donde se calcula el área y perímetro según la figura que corresponda, y es aquí en donde se aplica el polimorfismo, ya que se está utilizando el método CalculaAP de manera distinta según la subclase que la utilice.
Fuentes:
Al igual que en la herencia, en el polimorfismo me auxilié de tutoriales Java, en :
En este link, se continúa el ejemplo de las bicicletas pero con el polimorfismo:
(Imagen) Con este ejemplo me quedó más clara la definición de polimorfismo:
VIDEOS
Este video explica de manera muy básica las definiciones de herencia y polimorfismo utilizando ejemplos básicos como animales, figuras geométricas y autos.
En este otro video explican herencia y polimorfismo en Python 3:
________________________________________
Herencia y Polimorfismo aplicado al tema de reservaciones y vuelos en una aerolínea
*** HERENCIA ***
Superclase:
- Tripulación
Subclases:
- Capitan
- Auxiliar_de_vuelo
- Sobrecargo
* TRIPULACION | ||
Atributos: | Métodos: | |
· idCrew · Nombre · ApellidoPaterno · ApellidoMaterno · Dirección · Teléfono · RFC | · Alta de tripulación · Baja de tripulación · Modificación de tripulación | |
* CAPITAN | ||
Atributos: | Métodos: | |
→ TRIPULACION · Licencia | ||
* AUXILIAR_DE_VUELO | ||
Atributos: | Métodos: | |
→ TRIPULACION · Licencia · Categoria (copiloto o auxiliar) | ||
* SOBRECARGO | ||
Atributos: | Métodos: | |
→ TRIPULACION · Categoria |
*** POLIMORFISMO ***
Al dar de alta a un capitán, un auxiliar de vuelo o un sobrecargo, se utilizan los mismos métodos pero con parámetros diferentes:
AltaCapitan(idCrew, Licencia)
AltaAuxiliar(idCrew, Licencia, Categoria)
AltaSobrecargo(idCrew, Categoria)
...