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)
...
Aun no publico lo referente a Herencia y Polimorfismo por tener pendiente las clases, atributos y métodos del sistema de reservaciones y vuelos.
ResponderEliminarEspero el comentario de la Dra. Elisa para avanzar y no continuar incorrectamente.
Pues, ya :) Te pongo tres puntos ahora y los otros dos una vez que apliques en el tema ese. Avísame si subes algo y no comento en ello.
ResponderEliminarProfe,
ResponderEliminarAquí lo que modifiqué fueron los videos, los inserté.
También agregué lo de herencia y polimorfismo ya aplicado al sistema de reservaciones de vuelos. Agregué y modifiqué unas clases para aplicar estos conceptos.
Las clases de ORIGEN y DESTINO son muy parecidas y también quería aplicar lo de herencia y polimorfismo a ellas. No se que opine.
Saludos!
Creo que la diferencia entre origen y destino es simplemente el papel que juega - deberían ser instancias de una sola clase según mi razonamiento. Te puse tus dos puntos faltantes y un punto extra.
ResponderEliminar