Вы находитесь на странице: 1из 4

ACTIVIDADES A DESARROLLAR

1. Herencia
La herencia es un mecanismo que permite la definición de una clase a partir de la definición
de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre
clases, subclases y objetos.
La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el
código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada
de ella, o bien una subclase.
2. Polimorfismo
Según [1] en el polimorfismo un objeto solamente tiene una forma (la que se le asigna
cuando se construye ese objeto) pero la referencia a objeto es polimórfica porque puede
referirse a objetos de diferentes clases (es decir, la referencia toma múltiples formas). Para
que esto sea posible debe haber una relación de herencia entre esas clases. Por ejemplo,
considerando la figura anterior de herencia se tiene que:
 Una referencia a un objeto de la clase B también puede ser una referencia a un
objeto de la clase A.
 Una referencia a un objeto de la clase C también puede ser una referencia a un
objeto de la clase A.
 Una referencia a un objeto de la clase D también puede ser una referencia a un
objeto de la clase A.
 Una referencia a un objeto de la clase E también puede ser una referencia a un
objeto de la clase D.
 Una referencia a un objeto de la clase E también puede ser una referencia a un
objeto de la clase A.

3. Herencia Simple y Herencia Múltiple


En [3] se definen dos tipos de herencia: Herencia Simple y Herencia Múltiple. La primera
indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras
que la segunda indica que se pueden definir nuevas clases a partir de dos o más clases
iniciales. Java sólo permite herencia simple.
4. Herencia de Interfaz
Al darse diversos problemas con respecto a la herencia multiple, varios lenguajes optaron
por implementar mecanismos de acción internos en caso de colisión, en el caso de Java, se
planteó el uso de la interfaz para ese propósito [3].
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).
5. Polimorfismo y reutilización
Las operaciones polimórficas son aquellas que hacen funciones similares con objetos
diferentes:
Ejemplo:
 Suponer que existe la clase Figura y sus subclases
o Círculo
o Cuadrado
o Polígono

Todas ellas con las operaciones:


 dibuja()
 borra()

Imagen 1. Ejemplo de polimorfismo. Tomado de [3].

6. Sobrecarga
Consiste en que dos o más métodos de una clase tienen el mismo nombre, pero con listas de
parámetros distintos [4].
 La sobrecarga es usada en Java para implementar el polimorfismo
 Java utiliza el tipo y/o el numero ´ de argumentos como guía para ver a cuál método
llamar
 El tipo que devuelve un método es insuficiente para distinguir dos versiones de un
método
7. Polimorfismo en jerarquías de herencia
En la aplicación del polimorfismo en jerarquías de herencia no hay receta mágica para crear
buenas Jerarquías ya que siempre vamos a tener que afrontar problemas causados por la
evolución de la jerarquía. Para aplicar la jerarquía podemos usar:
Generalización (Factorización)
„ Se detectan clases con un comportamiento común
„ Ejemplo: Libro y Revista son Publicaciones
Especialización (Abstracción)
„ Se detecta que una clase es un caso especial de otra
„ Ejemplo: Rectángulo es un tipo de Polígono

8. Variables Polimórficas
En Java, las variables que contienen objetos son variables polimórficas. El término
polimórfico (literalmente: muchas formas) se refiere al hecho de que una misma variable
puede contener objetos de diferentes tipos (del tipo declarado o de cualquier subtipo del
tipo declarado). El polimorfismo aparece en los lenguajes orientados a objetos en
numerosos contextos, las variables polimórficas constituyen justamente un primer ejemplo
[5].
Observemos la manera en que el uso de una variable polimórfica nos ayuda a simplificar
nuestro método listar. El cuerpo de este método es:
for (Elemento elemento : elementos)
elemento.imprimir();
En este método recorremos la lista de elementos (contenida en un ArrayList mediante la
variable elementos), tomamos cada elemento de la lista y luego invocamos su método
imprimir.El uso de herencia en este ejemplo ha eliminado la necesidad de escribir dos
ciclos en el método listar. La herencia evita la duplicación de código no sólo en las clases
servidoras sino también en las clases clientes de aquellas.
REFERENCIAS
[1] UNAM. Programación en JAVA. Tomado de: http://profesores.fi-
b.unam.mx/carlos/java/java_basico4_8.html
[2] Universidad distrital francisco José de Caldas. Herencia de Interfaz, 2013. Tomado de:
https://ingenieria.udistrital.edu.co/pluginfile.php/39192/mod_resource/content/1/He
rencia%20de%20Interfaz.pdf
[3] González Harbour M., Aldea Rivas M. Programación en Lenguaje Java. Tema 8.
Herencia y polimorfismo, 2015. Tomado de:
https://ocw.unican.es/pluginfile.php/293/course/section/228/cap8-herencia.pdf
[4] CLDC, Programacion en JAVA, 2004. Tomado de:
http://leo.ugr.es/J2ME/CLDC/transjava.pdf
[5] Variables polimórficas (plantillas): definición, uso y aplicaciones, 2012. Tomado de:
https://rua.ua.es/dspace/bitstream/10045/19451/1/UD6-Polimorfismo-2.pdf

Вам также может понравиться