Vous êtes sur la page 1sur 4

Polimorfismo (Polimorfismo significa muchas formas) Es una caracterstica de la programacin orientada a objetos que permite que un nombre pueda

utilizarse en dos o ms formas, para dos o ms propsitos relacionados entre si. Esto significa que el lenguaje Java puede admitir una sobrecarga de funciones u operadores de una misma funcin. El polimorfismo es un concepto de la programacin orientada a objetos que nos permite programar en forma general, en lugar de hacerlo en forma especfica. En general nos sirve para programar objetos con caractersticas comunes y que todos estos compartan la misma superclase en una jerarqua de clases, como si todas fueran objetos de la superclase. Esto nos simplifica la programacin. Recuerde el ejemplo del ecosistema, en donde todos los objetos de las distintas especies heredaban de una superclase llamada Animal, que brindaba la informacin general de cualquier animal, independiente de su especie. Sin embargo, cada especie hace un uso particular de cada uno de los mtodos u operaciones de la clase Animal. El mtodo comer() no se ejecutar de la misma manera en un Len() o en un Pavo(). Lo mismo ocurre para mtodos moverse() en objetos de tipo Tiburn() o Gallina(), aunque todas las especies realicen estos mtodos. A la sobrescritura o implementacin especfica de mtodos es la clave del polimorfismo. Para poner en prctica se har un ejemplo bastante sencillo. Se har una librera de clases que represente figuras tridimensionales y bidimensionales, y su respectiva jerarqua de clases. Las clases deben ser capaces de tener funcionamiento bastante bsico, como obtener reas, volmenes y permetros de la figura correspondiente. La representacin de la jerarqua sera como sta:

La superclase de dicha jerarqua podra ser muy parecida a sta: public abstract class figura { protected String nombre;

PABLO SALAZAR

CUARTO B

protected int color; protected int grosorBorde; public String getNombre(){ return this.nombre; } public void setNombre(String n){ this.nombre=n; } public int getColor(){ return this.color; } public void setColor(int c){ this.color=c; } public int getGrosorBorde(){ return this.grosorBorde; } public void setGrosorBorde(int g){ this.grosorBorde=g; } public abstract void dibujar(); } Las siguientes clases en el nivel de la jerarqua podran quedar muy parecidas a stas: public abstract class figura2D extends figura { public abstract int calcularArea();

PABLO SALAZAR

CUARTO B

public abstract int calcularPerimetro(); } public abstract class figura3D extends figura { public abstract int calcularVolumen(); } Se le pide que forme las clases de la parte inferior de la jerarqua y que representaran los objetos a instanciarse. Adems, debe de realizar una implementacin de esta librera, en donde el usuario pueda crear nuevas figuras y que stas se almacenen en un arreglo de figuras.

public interface IPerson { int getAge(); } public class Person implements IPerson { int age; public int getAge() { System.out.println("I 'am Person"); return age; } } public class Engineer extends Person { @Override public int getAge() { System.out.println("I 'am Engineer"); return age; }

PABLO SALAZAR

CUARTO B

} public class JavaEngineer extends Engineer {

@Override public int getAge() { System.out.println("I 'am JavaEngineer"); return age; } } public class Main { public static void main(String[] args) { Person person1 = new Engineer(); person1.getAge(); IPerson person2 = new JavaEngineer(); person2 = person1; person2.getAge(); } }

PABLO SALAZAR

CUARTO B

Vous aimerez peut-être aussi