Академический Документы
Профессиональный Документы
Культура Документы
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.
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