Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Polimorfismo,
Clases Abstractas
e Interfaces
POLIMORFISMO
Definicin: El polimorfismo es una relajacin del sistema de tipos, de tal
manera que una referencia a una clase (atributo, parmetro o
declaracin local o elemento de un vector) acepta direcciones de objetos
de dicha clase y de sus clases derivadas (hijas, nietas, ).
Polimorfismo
-2-
CuentaUsuarioDocente
El polimorfismo nos permite trabajar con una lista de CuentaUsuario sin
saber o importarnos de que tipo de cuenta se trata
Polimorfismo
En Java podemos asignar a una variable de un cierto tipo de clase una
instancia de esa clase particular o una instancia de cualquier subclase de la
clase
CuentaUsuario micuenta = new CuentaUsuarioAlumno(...);
Ahora la variable MiCuenta se ve como uno objeto CuentaUsuario y puede
ser tratada de esa manera aunque internamente se trate de un objeto
CuentaUsuarioAlumno
Podemos hacer una conversion de regreso a CuentaUsuarioAlumno si
alguna vez necesitamos la funcionalidad especial de la clase
CuentaUsuarioAlumno
CuentaUsuarioAlumno micuentaestudiante =
(cuentaUsuarioAlumno)micuenta;
-3-
Clases abstractas e
interfaces
Clases abstractas
Una clase abstracta es una clase que no se puede instanciar se usa
nicamente para definir subclases
Cundo es una clase abstracta?
En cuanto uno de sus mtodos no tiene implementacin (en Java, el
mtodo abstracto se etiqueta con la palabra reservada abstract).
Cundo se utilizan clases abstractas?
-4-
Figura
#X
#Y
+rea()
Cuadrado
Crculo
-lado
-radio
+rea()
+rea()
-5-
Interfaces
Una interfaz es una clase completamente abstracta
(una clase sin implementacin)
Cuadrado
Crculo
-lado
-radio
+rea()
+rea()
Una interfaz no encapsula datos, slo define cules son los mtodos
que han de implementar los objetos de aquellas clases que
implementen la interfaz.
{
}
- 21 -
Solucin A
Interfaz contaminado
Solucin B
Adaptadores
Solucin C
Segregacin de interfaces