Investigación Polimorfismo
Investigación Polimorfismo
Investigación Polimorfismo
Polimorfismo
Investigacin 2
PGINA 1
Introduccin
PGINA 2
Objetivos
OBJETIVO GENERAL.
Definir los conceptos de herencia y polimorfismo
OBJETIVOS ESPECFICOS.
Definir la diferencia entre herencia y polimorfismo
Explicar las utilidades de la herencia y polimorfismo
Describir ejemplos de herencia y polimorfismo
PGINA 3
Herencia
Herencia en la programacin orientada a objetos es la habilidad de extender una funcionalidad
existente definiendo una nueva clase que hereda funcionalidad de una clase existente.
En qu consiste?
Si se cuenta con una clase que se acerca a lo que necesitamos; no es necesario crear una clase desde
cero, podemos extenderla para crear nuestra nueva clase. Esta nueva clase se llamar subclase y la
clase que ya tenamos se llamar superclase.
Al igual que las herencias en la vida real, la clase hija pasa a tener lo que tiene la clase padre
Atributos
Mtodos
La subclase heredara todos los atributos y los mtodos que fueron definidos en la clase padre. Si
necesitamos cambiar algn mtodo, se puede sobrescribir el comportamiento en nuestra subclase;
utilizando el mismo nombre y los mismos argumentos del mtodo que se encuentra en la subclase.
Si se requiere podemos crear un nuevo mtodo e incluirlo en nuestra subclase.
Un objeto de la clase hija es tambin un objeto de la clase padre. Una clase puede heredar atributos
por dos superclases (clases padres). La herencia mltiple puede ser usada para agrupar atributos y
mtodos de distintas clases en una sola.
EN QU CONSISTE?
En la clase hija se definen las diferencias respecto de la clase padre
PARA QU SE USA?
Para extender la funcionalidad de la clase padre
Para especializar el comportamiento de la clase padre
VENTAJAS
Tipo especial de relacin entre clases
Es uno de los aspectos que distinguen el Paradigma de Orientacin a Objetos frente a otros
paradigmas
Mecanismo que facilita la modificabilidad y reutilizacin de los diseos y el cdigo
DESVENTAJAS
Se introduce una fuerte dependencia en la clase hija respecto a la clase padre
Puede dificultar la reutilizacin
Un cambio en la clase padre puede tener efectos imprevistos en las clases hijas.
Se establece una jerarqua o clasificacin.
Si cambia el criterio de clasificacin puede acarrear muchas modificaciones
PGINA 4
HERENCIA EN JAVA
Se indica usando la palabra reservada extends.
VISIBILIDAD
Los miembros privados de la superclase no son visibles desde la subclase Los miembros
pblicos de la superclase son visibles y siguen siendo pblicos en la subclase.
Se puede acceder a los miembros de la superclase usando la palabra reservada super.
Si una clase se declara como final no se puede heredar de ella.
En java, todas las clases heredan implcitamente de la clase Object.
Slo se puede hacer herencia de implementacin (extends) de una clase.
No se crean problemas de referencias circulares o alternativas a un mtodo con la misma
declaracin.
Se puede hacer herencia de interfaz (implements) de todas las interfaces que se quiera.
Los atributos y mtodos de la superclase no se repiten en las subclases.
PGINA 5
HERENCIA EN UN DIAGRAMA DE CLASES
PGINA 6
HERENCIA Y CONSTRUCTORES
Los constructores no se heredan
las subclases deben definir su propio constructor
Normalmente ser necesario inicializar los atributos de la superclase para ello se llama a su
constructor desde el de la subclase
la llamada a super debe ser la primera instruccin del constructor de la subclase
Si desde un constructor de una subclase no se llama expresamente al de la superclase
el compilador aade la llamada al constructor sin parmetros. en el caso de que la superclase
no tenga un constructor sin parmetros se producira un error de compilacin
Polimorfismo
La palabra polimorfismo viene de mltiples formas. Las operaciones polimrficas son aquellas que
hacen funciones similares con objetos diferentes.
En programacin orientada a objetos es una tcnica para optimizar la funcionalidad basada en tipos
particulares. La diferencia entre herencia y polimorfismo es que herencia est relacionada con clases
y polimorfismo con mtodos. Gracias a la herencia, se puede interpretar que un objeto de una
subclase es tambin un objeto de una superclase El polimorfismo es un mecanismo que se aprovecha
de la herencia (especialmente de interfaz) para manejar indistintamente objetos de las subclases
como si fuesen objetos de la clase base, sin preocuparse por la clase en concreto a la que pertenecen
Interesa utilizarlo cuando un comportamiento vara en funcin del tipo de algo. Existen 3 tipos de
polimorfismo.
PGINA 7
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.
Paramtrico:
Existen funciones con el mismo nombre, pero se usan diferentes parmetros (nombre o tipo). Se
selecciona el mtodo dependiendo del tipo de datos que se mande.
Inclusin:
Es cuando se puede llamar a un mtodo sin tener que conocer su tipo, as no se toma en cuenta los
detalles de las clases especializadas, utilizando una interfaz comn.
POLIMORFISMO EN JAVA
El polimorfismo en Java consiste en dos propiedades:
1.Una referencia a una superclase puede apuntar a un objeto de cualquiera de sus subclases
PGINA 8
Y podra invocarse de la forma siguiente:
Implcito: no se necesita escribir cdigo para que se lleve a cabo. Ocurre cuando se realiza
una conversin ancha (widening casting), es decir, cuando se coloca un valor pequeo en
un contenedor grande.
Explcito: s es necesario escribir cdigo. Ocurre cuando se realiza una conversin estrecha
(narrowing casting), es decir, cuando se coloca un valor grande en un contenedor pequeo.
Son susceptibles de prdida de datos.
PGINA 9
Conclusiones
Las clases se pueden extender. La subclase hereda los atributos y mtodos de la superclase.
Al extender una clase se pueden redefinir sus operaciones. si se desea, se puede invocar desde
la nueva operacin a la de la superclase, a esto se le conoce como programacin incremental.
A la subclase se le pueden aadir nuevas operaciones y atributos
El polimorfismo nos permite abstraer operaciones, podemos invocarlas sin preocuparnos de
las diferencias, existentes para objetos diferentes, el sistema elige la operacin apropiada al
objeto.
El polimorfismo se asocia a las jerarquas de clases: una superclase y todas las subclases
derivadas de ella directa o indirectamente.
El polimorfismo en Java consiste en dos propiedades: 1. Una referencia a una superclase
puede apuntar a un objeto de cualquiera de sus subclases. 2.La operacin se selecciona en
base a la clase del objeto, no a la de la referencia
PGINA 10
Bibliografa
King, Kim N. Java programming: from the beginning. W. W. Norton & Company, cop. 2000
Francisco Gutirrez, Francisco Durn, Ernesto Pimentel. Programacin Orientada a Objetos
con Java. Paraninfo, 2007.
Ken Arnold, James Gosling, David Holmes, El lenguaje de programacin Java, 3 edicin.
Addison-Wesley, 2000.
Deitel, Harvey M. y Deitel, Paul J., Cmo programar en Java, 10ma. edicin. Pearson
Educacin, Mxico, 2015.
PGINA 11