Software">
Taller A
Taller A
Taller A
-Herencia y Polimorfismo
-Herencia Simple
-Herencia Múltiple
-Herencia de Interfaz
-Herencia de Implementación
-Polimorfismo y reutilización
-Sobrecarga
-Polimorfismo en jerarquías de herencia
-Variables Polimórficas
HERENCIA
Herencia en la programación orientada a objetos es la habilidad de extender una
funcionalidad existente definiendo una nueva clase que hereda funcionalidad de una clase
existente. Lo cual nos ahorrara mucho tiempo a los programadores.
Si contamos con una clase que se acerca a lo que necesitamos; no es necesario crear una
clase desde cero. Podemos aprovecharla y extenderla para crear nuestra nueva clase. Esta
nueva clase se llamara subclase y la clase que ya teníamos se llamara superclase.
La subclase heredara todos los atributos y los métodos que fueron definidos en la clase
padre. Si necesitamos cambiar algún método, se puede sobrescribir el comportamiento en
nuestra subclase; utilizando el mismo nombre y los mismos argumentos del método que se
encuentra en la subclase. O bien si se requiere crear un nuevo método lo podemos incluir en
nuestra subclase.
Una clase puede heredar atributos por dos superclases (clases padres). La herencia múltiple
puede ser usada para agrupar atributos y métodos de distintas clases en una sola.
Ejemplo:
POLIMORFISMO
Significa literalmente muchas formas. En programación orientada a objetos es una tecnica
para optimizar la funcionalidad basada en tipos particulares.
La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases y
polimorfismo con métodos.
Existen 3 tipos de polimorfismo:
- Sobrecarga:
Es cuando existen funciones con el mismo nombre, con funcionalidad similar; en clases
que son completamente independientes una de la otra.
- Paramétrico:
Existen funciones con el mismo nombre pero se usan diferentes parámetros (nombre o
tipo). Se selecciona el método dependiendo del tipo de datos que se mande.
- Inclusión:
Es cuando se puede llamar a un método sin tener que conocer su tipo, así no se toma en
cuenta los detalles de las clases especializadas, utilizando una interfaz común.
HERENCIA SIMPLE
La herencia simple consiste en cuando una clase, hereda a una clase hijo, y a solo una le
hereda sus atributos, es igual al concepto general de herencia, con la limitante de solo
poder heredar de una clase padre a una clase hijo, y solo a una clase hijo
HERENCIA MÚLTIPLE:
Consiste en la utilización de las propiedades de una clase a varias clases más, lo que
significa que en esta propiedad una sola clase padre puede heredarle atributos, u objetos
de esta a varias clases hijo sin ninguna limitación entre ellas.
HERENCIA DE INTERFAZ
La interfaz es básicamente una clase abstracta pura, sus métodos son todos abstractos y no
maneja atributos generalmente, de hecho no tiene implementación (no asocia un espacio de
almacenamiento), así que se pueden combinar varias interfaces cosa que no permiten las
clases usuales, si se experimenta Java no permite que en la firma de una clase se pongan
dos clases después de un extends pero si de los implements , cuantas se deseen, dando la
facilidad de usar las interfaces que requiera. En este sentido es como si cada clase base que
se desee manifestar en la herencia múltiple sea una interfaz. Claro está que se puede usar
una clase concreta con extends y las demás con implements (interfaces).
- ArrayList:
POLIMORFISMO Y REUTILIZACIÓN
SOBRECARGA DE FUNCIONES
Este el diagrama inicial del cual podemos observar que todas clases compartes los mimos
atributos, se observa la redundancia y uso incensario de variables.
Aquí ya podemos observar la herencia aplicada; donde el padre funcionario y persona es su hijo, la
clase empleado también es padre tiene la responsabilidad de dar sus atributos, el administrador
no hace parte, es hijo de usuario por que el administrador no es un empleado.