Documente Academic
Documente Profesional
Documente Cultură
POLIMORFISMO
INTEGRANTES:
Almora Castro Nellie.
Huapaya Atauje Shiaron.
Garibay Cadenas Victor.
Jayo Gomez Jos.
Pardo Echegaray Ayrton
HERENCIA
La herencia es especfica de la programacin orientada a objetos, donde una clase nueva se crea a partir de
una clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de que
la subclase (la nueva clase creada) contiene las atributos y mtodos de la clase primaria. La principal
ventaja de la herencia es la capacidad para definir atributos y mtodos nuevos para la subclase, que luego
se
aplican
a
los
atributos
y
mtodos
heredados.
Jerarqua de clase
La relacin primaria-secundaria entre clases puede representarse
desde un punto de vista jerrquico, denominado vista de clases en
rbol. La vista en rbol comienza con una clase general llamada
superclase (a la que algunas veces se hace referencia como clase
primaria, clase padre, clase principal, o clase madre; existen muchas
metforas genealgicas). Las clases derivadas (clase secundaria o
subclase) se vuelven cada vez ms especializadas a medida que van
descendiendo el rbol. Por lo tanto, se suele hacer referencia a la
relacin que une a una clase secundaria con una clase primaria
mediante la frase "es una" x o y.
Animal
Carnvoro
Herbvoro
Conejo
Leon
Hiena
Omnvoro
Hombre
ASPECTOS GENERALES
Class clase Hija extends clase Padre{}
Representa un relacin es un
extends especifica que la clase Hija hereda datos y mtodos de clase padre.
Aunque hereda todo, la clase hija solo tiene acceso a los miembros de la clase
padre con modificadores public, protect, o package (o vaco).
En situaciones excepcionales, puede interesar definir una variable en la
subclase con el mismo nombre que la superclase (se tendran huecos
diferentes de memoria).
Herencia mltiple
Algunos lenguajes orientados a objetos, como C++ permiten herencias
mltiples, lo que significa que una clase puede heredar los atributos de
otras dos superclases. Este mtodo puede utilizarse para agrupar
atributos y mtodos desde varias clases dentro de una sola.
ANIMAL
HERBVORO
CARNVORO
OMNVORO
EJEMPLO 1:
Class Punto{
Int x;
Int z;
Int y;
This.x=x;
This. x=x;
This.y=y;
This. y=y;
This.z=z;
Punto(){ this(0,0)}
Punto3D(){ this(0,0,0);}
EJEMPLO 2:
class Humano {
protected String nombre;
protected String apellido;
public Humano(String nombre,String apellido) {
this.nombre = nombre;
this.apellido = apellido;
}
public String nombreCompleto() {
return this.apellido + ", " + this.nombre; }
public String identificacion() {
return this.nombreCompleto();
}
}
POLIMORFISMO:
La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes.
Este es uno de los conceptos esenciales de una programacin orientada a objetos. As como la
herencia est relacionada con las clases y su jerarqua, el polimorfismo se relaciona con los
mtodos.
FIGURA
-COLOR
+AREA
CUADRADO
-LADO
+AREA()
AREA()
{LADO*LADO
CIRCULO
-RADIO
+AREA()
AREA()
{PI*RADIO*RADIO
Y se clasifican en :
Polimorfismo de sobrecarga.
Polimorfismo de inclusin
(tambin llamado redefinicin,subtipado,sobreescritura).
Dinmico: es cuando el cdigo no incluye ningn tipo de especificacin
sobre el tipo de datos:
POLIMORFISMO ESTTICO.
Polimorfismoad hoc, es aqul en el que los tipos a los que se aplica
el polimorfismo deben ser explicitados y declarados uno por uno antes
de poder ser utilizados.
EJEMPLO
Por un lado tenemos la clase base Transporte, que posee los
mtodos Avanzar y Frenar. Por otro lado tenemos tres clases
distintas derivadas de la clase Transporte, cada una de las cuales
podr sobrescribir la implementacin de los mtodos Avanzar y
Frenar para que su comportamiento sea ms especfico.
POLIMORFISMO DE SOBRECARGA
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen,
con funcionalidad similar, en clases que son completamente independientes una de otra
(stas no
tienen que ser clases secundarias de la clase objeto).
Por ejemplo la clase:
"SumaGenerica" que juntara las sumas de todos los tipos primitivos:
class SumaGenerica {
int suma (int a, int b) {
return a+b; }
double suma (double a, double b) {
return a+b; } }
En este caso se dice que el mtodo est sobrecargado y el proceso de definir un mtodo
as se conoce como sobrecarga del mtodo. La sobrecarga de mtodos es una de las
maneras en que Java implementa el polimorfismo.
POLIMORFISMO DE SUPTIPADO.
LA HABILIDAD PARA REDEFINIR UN MTODO EN CLASES QUE SE
HEREDA DE UNA CLASE BASE SE LLAMA ESPECIALIZACIN.
POR LO TANTO, SE PUEDE LLAMAR UN MTODO DE OBJETO SIN TENER
QUE CONOCER SU TIPO INTRNSECO: ESTO ES POLIMORFISMO DE
SUBTIPADO. PERMITE NO TOMAR EN CUENTA DETALLES DE LAS CLASES
ESPECIALIZADAS DE UNA FAMILIA DE OBJETOS, ENMASCARNDOLOS
CON UNA INTERFAZ COMN (SIENDO ESTA LA CLASE BSICA).
IMAGINE UN JUEGO DE AJEDREZ CON LOS OBJETOS REY, REINA, ALFIL,
CABALLO, TORRE Y PEN, CADA UNO HEREDANDO EL OBJETO PIEZA.
EL MTODO MOVIMIENTO PODRA, USANDO POLIMORFISMO DE
SUBTIPADO, HACER EL MOVIMIENTO CORRESPONDIENTE DE ACUERDO
A LA CLASE OBJETO QUE SE LLAMA. ESTO PERMITE AL PROGRAMA
REALIZAR EL MOVIMIENTO.
DE PIEZA SIN TENER QUE VERSE CONECTADO CON CADA TIPO DE PIEZA
EN PARTICULAR.
SOBREESCRITURA
La sobreescritura se aplica a los mtodos y est directamente relacionada a
la herencia; se refiere a la redefinicin de los mtodos de la clase base en las
subclases. Por ejemplo, en la relacin de herencia del ejemplo de las figuras
aunque la clase base Figura tiene los mtodos calcularArea y
calcularPerimetro, las subclases Circulo, Cuadrado, Triangulo y
Rectngulo redefinen estos mtodos ya que el calculo del rea y el
permetro de cada uno de ellos es diferente.
POLIMORFISMO PARAMETRICO.
El polimorfismo paramtrico es la capacidad para definir varias funciones utilizando el
mismo nombre, pero usando parmetros diferentes (nombre y/o tipo). El polimorfismo
paramtrico
selecciona automticamente el mtodo correcto a aplicar en funcin del tipo de datos
pasados en el parmetro.
Por lo tanto, por ejemplo, definir varios mtodos homnimos de addition() efectuando
una suma de valores.
El mtodo int addition(int,int) devolvera la suma de dos nmeros enteros.
float addition(float, float) devolvera la suma de dos flotantes.
char addition(char, char) dara por resultado la suma de dos
caracteres definidos por el autor.
GRACI
AS!!