You are on page 1of 6

04/04/2011

POLIMORFISMO

Polimorfismo
Describe la caracterstica de un elemento que puede tomar varias

formas, como el agua que se encuentra en estado slido, lquido o gaseoso.

El polimorfismo nos permite programar en forma general , en vez de

programar en forma especifica. En especial, el polimorfismo nos permite escribir programas que procesen objetos de clases que formen parte de la misma jerarqua de clases como si todos fueran objetos de sus superclases. diferentes versiones de un mismo mtodo.

La posibilidad de utilizar una misma expresin para invocar a

04/04/2011

Abstraccin.
El polimorfismo se basa en gran medida en clases abstractas, encapsulacin, de echo, es una de las principales aplicaciones de la herencia y supone el principal motivo de la existencia de las clases abstractas. Definicin Una clase abstracta es una clase en la que alguno de sus mtodos est declarado pero no est definido, es decir, se especifica su nombre, parmetros y tipo de devolucin pero no incluye cdigo. A este tipo de mtodos se le conoce como mtodos abstractos. Un mtodo se define como abstracto porque en ese momento no se conoce cmo ha de ser su implementacin ; sern las subclases de la clase abstracta las responsables de darle cuerpo mediante la sobrescritura del mismo.

Abstraccin.

04/04/2011

Abstraccin.
Sintaxis y caractersticas La sintaxis para la creacin de una clase abstracta es la siguiente: public abstract class nombre_clase{ public abstract tipo nombre_mtodo (argumentos); // otros mtodos; } Por ejemplo: public abstract class Figura{ public abstract double area(); . . }

Abstraccin.
Sobre la creacin y utilizacin de clases abstractas hay que tener en cuenta los siguientes aspectos:
Una

clase abstracta puede tener mtodos no abstractos. No es posible crear objetos de una clase abstracta. Las subclases de una clase abstracta estn obligadas a sobrescribir todos los mtodos abstractos que heredan. Una clase abstracta puede tener constructores.

04/04/2011

Partiendo de los siguientes diagramas de clase genera el cdigo Correspondiente:


*Figura Atributos: Color Mtodos: getColor() *area()

?
Circulo Atributos: radio Mtodos: getRadio() area()

Triangulo Atributos: base altura Mtodos: getBase() getAltura() area()

* Clase/mtodo abstracta/o

INTERFACES
Definicin de interfaz. Estrictamente hablando, una interfaz es un conjunto de mtodos abstractos y de constantes pblicos definidos en un archivo . Java. Una interfaz es similar a una clase abstracta llevada al limite, en la que todos sus mtodos son abstractos. No olvidemos que una interfaz no establece lo que un mtodo tiene que hacer y como hacerlo , sino el formato (nombre, parmetros y tipo de devolucin ) que ste debe tener.

04/04/2011

INTERFACES
Una intefaz se define mediante la palabra interface, utilizando la siguiente sintaxis: [public] interface Nombre_interfaz{ tipo metodo1 (argumentos); tipo metodo2 (argumentos); . . }

INTERFACES
A la hora de crear una interfaz hay que tener en cuenta las siguientes consideraciones:
Todos los mtodos definidos en una interfaz son pblicos y abstractos. En una interfaz es posible definir constantes. Una interfaz no es una clase.

Implementacin de una interfaz En la definicin de clase, se utiliza la palabra implements para indicar qu Interfaz se ha de implementar: public class Miclase implements Miinterfaz{ . . }

04/04/2011

INTERFACES
Sobre la implementacin de interfaces, se ha de tener en cuenta lo siguiente:
Al igual que sucede al heredar una clase abstracta, cuando una clase

implementa una interfaz, est obligada a definir el cdigo (implementar) de todos los mtodos existentes en la misma. De no ser as, la clase deber ser declarada como abstracta. Una clase puede implementar ms de una interfaz. El formato utilizado en la definicin de una clase ser: public class MiClase implements Interfaz1, Interfaz2,{ Una clase puede heredar otra clase e implementar al mismo tiempo una o varias interfaces. Ejem. Public class MiClase extends Superclase implements Interfaz1, Interfaz2{ Una interfaz puede heredar otras interfaces. La sintaxis utilizada es la siguiente: public interface Miinterfaz extends Interfaz1, Interfaz2{

Mtodos set(establecer) get(obtener)


Los campos privados pueden manipularse solamente mediante mtodos de la clase en donde estn declarados. Una manipulacin tpica sera el ajuste del saldo bancario de un cliente (por ejemplo una variable de instancia private de una clase llamada cuentabancaria) mediante un mtodo llamada calcularInteres. Las clases a menudo proporcionan mtodos public para permitir a los clientes de la clase establecer (es decir, asignar valores a) u obtener (es decir, recibir los valores de) variables de instancia private. No es necesario llamar a estos mtodos establecer y obtener, pero a menudo as sucede.

You might also like