PolimorfismoLenguajes deProgramación IICorporación Universitariadel Caribe CECAR
Polimorfismo   Poly   morphos         Múltiples formas(Definición)                                     •mismo nombre,     ...
 El polimorfismo va ligado a la herencia: objetos  jerárquicamente relacionados responden en forma  diferente al mismo me...
Polimorfismo VSSobrecarga         Sobrecarga              Polimorfismo         se da siempre en una     se da entre clases...
Método Abstracto            Método Abstracto   es un método   declarado en  una clase para                                ...
Clase abstracta                                      Tiene al                                     menos un              Un...
Implementaciónpublic abstract class figura {                                     public abstract class figura2D extends fi...
Interface            una interface es una clase abstracta pura, es decir una clase donde todos los                        ...
Ejemplo Interface        interface nombre_interface {            tipo_retorno nombre_metodo ( lista_argumentos ) ;       ...
Implementación de una interface/**                                             /** * Declaracion de la interfaz Modificaci...
Formas dePolimorfismo Sobre-escritura   de métodos:     Métodos de una subclase sobre escriben los      métodos de una s...
Sobre-escritura de métodos    Subclase modifica los métodos que ha heredado de su padre    Nuevo método tiene diferente ...
Llamada de métodos virtuales      Referencia                             Referencia       estática                        ...
Polimorfismo
Polimorfismo
Nächste SlideShare
Wird geladen in …5
×

Polimorfismo

501 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

Polimorfismo

  1. 1. PolimorfismoLenguajes deProgramación IICorporación Universitariadel Caribe CECAR
  2. 2. Polimorfismo Poly morphos Múltiples formas(Definición) •mismo nombre, métodos diferente implementación •actúen de modo diferente objetos en respuesta a una misma llamada. •Reutilizable Código •Fácil de adaptarlo
  3. 3.  El polimorfismo va ligado a la herencia: objetos jerárquicamente relacionados responden en forma diferente al mismo mensaje
  4. 4. Polimorfismo VSSobrecarga Sobrecarga Polimorfismo se da siempre en una se da entre clases sola clase distintas. se resuelve en tiempo se resuelve en tiempo de ejecución de enlazado (cuando (dependiendo de la se esta construyendo clase a la que el ejecutable) pertenece el objeto que hace el llamado)
  5. 5. Método Abstracto Método Abstracto es un método declarado en una clase para No tendrá se declaran el cual esa clase cuerpo y Sin código pero no se no proporciona terminará en definen. la punto y coma implementación (el código).
  6. 6. Clase abstracta Tiene al menos un Una clase que método extiende a una abstracto Declara la clase abstracta existencia de debe implementar métodos pero los métodos no la abstractos o implementació volverlos a declarar n como abstractos Puede contener tiene que métodos no- derivarse Clase abstractos obligatoriamen Abstracta pero al menos te uno de los métodos debe serlo no pueden tener métodos no se puede privados (no instanciar pero se podrían si se puede implementar) Cuando una heredar ni tampoco clase contiene estáticos. un método abstracto tiene que declararse abstracta
  7. 7. Implementaciónpublic abstract class figura { public abstract class figura2D extends figura {protected String nombre;protected int color; public abstract int calcularArea();protected int grosorBorde;public String getNombre(){ public abstract int calcularPerimetro();return this.nombre; }}public void setNombre(String n){this.nombre=n;}public int getColor(){return this.color;} public abstract class figura3D extends figura {public void setColor(int c){this.color=c; public abstract int calcularVolumen();} }public int getGrosorBorde(){return this.grosorBorde;}public void setGrosorBorde(int g){this.grosorBorde=g;}public abstract void dibujar();}
  8. 8. Interface una interface es una clase abstracta pura, es decir una clase donde todos los métodos son abstractosInterface Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes. La interface puede definirse public o sin modificador de acceso Todos los métodos que declara una interface son siempre public Una clase implementa una o más interfaces (separadas con comas ",") con la palabra reservada implements.
  9. 9. Ejemplo Interface  interface nombre_interface { tipo_retorno nombre_metodo ( lista_argumentos ) ; ... } Por ejemplo:  interface InstrumentoMusical { void tocar(); void afinar(); String tipoInstrumento(); }sirven de guía para definir un determinado concepto (clase) y lo quedebe hacer, pero sin desarrollar un mecanismo de solución
  10. 10. Implementación de una interface/** /** * Declaracion de la interfaz Modificacion * Declaracion de la clase Acumulador * @author A. Garcia-Beltran * @author A. Garcia-Beltran * Ultima revision: noviembre, 2007 * Ultima revision: noviembre, 2007*/ */public interface Modificacion { public class Acumulador implements Modificacion { void incremento(int a); private int valor;} public Acumulador (int i) { valor = i; } public int daValor () {/** return valor; * Demostracion de la clase Acumulador } * @author A. Garcia-Beltran public void incremento (int a) { * Ultima revision: noviembre, 2007 valor += a;*/ }public class PruebaAcumulador { } public static void main (String [] args) { Acumulador p = new Acumulador(25); p.incremento(12); System.out.println(p.daValor()); }}
  11. 11. Formas dePolimorfismo Sobre-escritura de métodos:  Métodos de una subclase sobre escriben los métodos de una superclase Sobre-escritura de métodos abstractos  Métodos de una subclase implementan los métodos abstractos de una superclase abstracta Sobre-escritura de métodos a través de interface:  Métodos de una clase concreta implementan los métodos de la interface
  12. 12. Sobre-escritura de métodos  Subclase modifica los métodos que ha heredado de su padre  Nuevo método tiene diferente funcionalidad del método del padre pero con el MISMO  Nombre  Tipo de Retorno  Lista de argumentos (OJO: lo diferencia de la Sobrecarga)public class empleado {String nombre;int salario;public String getDetalle(){ public class Jefe extends empleado {return «Nombre: «+nombre+»nSalario: «+salario;} String depto;} public String getDetalle(){ return «Nombre: «+nombre+»nDepartamento: «+depto; } }
  13. 13. Llamada de métodos virtuales Referencia Referencia estática dinámica (En tiempo de (En tiempo de compilación) ejecución) Empleado e=new Jefe; e.getDetalle();  ¿Cual de los getDetalle() se ejecutará? ¿El de la clase empleado o el de la clase Jefe?

×