You are on page 1of 17

Paradigmas de

Programacin II
Universidad de la
Sierra Sur
Licenciatura en Informtica
2
1.1 Polimorfismo
Esta caracterstica permite implementar mltiples
formas de un mismo mtodo dependiendo cada
una de ellas de la clase sobre la que se realice la
implementacin.
Esto hace que se pueda acceder a una variedad
de mtodos distintos (todos con el mismo
nombre) utilizando exactamente el mismo medio
de acceso.
3
Si tenemos la clase base Figura y de ella derivan
las clases Rectngulo y Elipse.
Suponiendo que las tres tienen declarado el
mtodo darea! ", entonces podemos tener
obetos de las clases derivadas re!erenciados
como si !ueran de la clase base y despus
enviarles mensaes para que devuelvan su "rea.
4
#$emplo de polimorfismo
5
#roporciona otra dimensin de separacin de la
inter!az de la implementacin, separa el %u& del
cmo.
El polimor!ismo permite una or$anizacin de
cdi$o y una le$ibilidad del mismo meorada,
adem"s de la creacin de pro$ramas ampliables
que pueden %crecer%, no slo durante la creacin
ori$inal del proyecto sino tambin cuando se
deseen a&adir nuevas caractersticas.
6
'os obetos de distintas clases pertenecientes a
una misma erarqua o que implementan una
misma inter!ace pueden tratarse de una !orma
$eneral e individualizada, al mismo tiempo.
7
El polimor!ismo tiene que ver con la relacin que
se establece entre la llamada a un mtodo y el
cdi$o que e!ectivamente se asocia con dicha
llamada.

( esta relacin se llama vinculacin (bindin$).
'a vinculacin puede ser)

*emprana (en tiempo de compilacin) o

*arda (en tiempo de eecucin).


8
+on !unciones normales o sobrecargadas se
utiliza vinculacin temprana (es posible y es lo
m"s e!iciente).
+on !unciones redefinidas en ,ava se utiliza
siempre vinculacin tarda, excepto si el mtodo
es final.
9
El polimor!ismo permite a los pro$ramadores
separar las cosas que cambian de las que no
cambian, y de esta manera hacer m"s !"cil la
ampliacin, el mantenimiento y la reutilizacin de
los pro$ramas.
10
El polimor!ismo puede hacerse con re!erencias de
super'clases abstract, super'clases normales
e interfaces.
#or su mayor !lexibilidad y por su independencia
de la erarqua de clases est"ndar, las inter!aces
permiten ampliar muchsimo las posibilidades del
polimor!ismo.
11
1.( )lases bstractas
+uando pensamos en una clase como un tipo,
asumimos que los pro$ramas crear"n obetos de
ese tipo.
Sin embar$o, hay casos en que es -til de!inir
clases para las cuales no se desea instanciar
obetos. *ales clases son llamadas clases
abstractas.
12
)lases bstractas
.ebido a que normalmente son utili*adas como
base en $erar%u+as de clases, nos re!eriremos a
ellas como clases base abstractas.
'as clases abstractas no sirven para instanciar
obetos porque est"n incompletas, siendo sus
clases derivadas las que deber"n de!inir las
partes !altantes.
13
El propsito de una clase abstracta es proveer
una clase base apropiada desde la cual otras
clases hereden.
'as clases desde las cuales se pueden instanciar
obetos se llaman clases concretas. *ales clases
proveen implementaciones de cada mtodo o
propiedad que de!inen.
14
'as clases abstractas normalmente contienen uno
o m"s mtodos o propiedades abstractas, las
cuales no proveen implementacin. 'as clases
derivadas deben reempla*ar los mtodos
abstractos heredados para permitir la
instanciacin de obetos.
15
1.(.1 ,efinicin
#ara de!inirla se utiliza la palabra clave abstract.
16
1.(.( Redefinicin
*omando como base una clase abstracta, se
pueden implementar clases derivadas que
rede!inen (reempla*an) a los mtodos abstractos
heredados de la clase base abstracta.
*oda clase concreta derivada debe reemplazar
los mtodos y propiedades abstractos de la clase
base, utilizando la palabra clave -.verride
1
, y
proveer implementaciones concretas de tales
mtodos y propiedades.
/
http)00do1nload.oracle.com0avase0tutorial0ava0ava220annotations.html
17

You might also like