SlideShare una empresa de Scribd logo
1 de 15
Polimorfismo
Lenguajes de
Programación II
Corporación Universitaria
del Caribe CECAR
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
 El polimorfismo va ligado a la herencia: objetos
  jerárquicamente relacionados responden en forma
  diferente al mismo mensaje
Polimorfismo VS
Sobrecarga

         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)
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).
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
Implementación
public 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();
}
Interface
            una interface es una clase abstracta pura, es decir una clase donde todos los
                                       métodos son abstractos
Interface

             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.
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 que
debe hacer, pero sin desarrollar un mecanismo de solución
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());
   }
}
Formas de
Polimorfismo
 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
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;
                                                  }

                                                  }
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?

Más contenido relacionado

La actualidad más candente

La actualidad más candente (18)

Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Lp13
Lp13Lp13
Lp13
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial   6 Polimorfismo, AbstraccióN E InterfacesCurso Java Inicial   6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
¿Qué es una interface en java?
¿Qué es una interface en java?¿Qué es una interface en java?
¿Qué es una interface en java?
 
Aprendiendo objetos en c++
Aprendiendo objetos en c++Aprendiendo objetos en c++
Aprendiendo objetos en c++
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 
Curso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic netCurso de iniciacion a la programacion con visual basic net
Curso de iniciacion a la programacion con visual basic net
 
Prog oo con_java
Prog oo con_javaProg oo con_java
Prog oo con_java
 
POO
POOPOO
POO
 

Destacado (20)

Trabajo verano COLEGIO EL CASTRO mate 2º eso 2012
Trabajo verano COLEGIO EL CASTRO  mate 2º eso 2012Trabajo verano COLEGIO EL CASTRO  mate 2º eso 2012
Trabajo verano COLEGIO EL CASTRO mate 2º eso 2012
 
Weltbibliotheken um 1900
Weltbibliotheken um 1900Weltbibliotheken um 1900
Weltbibliotheken um 1900
 
Rendicion de cuentas cecu 2012
Rendicion de cuentas cecu 2012Rendicion de cuentas cecu 2012
Rendicion de cuentas cecu 2012
 
Programación y evaluación por ccbb eso
Programación y evaluación por ccbb esoProgramación y evaluación por ccbb eso
Programación y evaluación por ccbb eso
 
Astronomía 2
Astronomía 2Astronomía 2
Astronomía 2
 
Sesion03
Sesion03Sesion03
Sesion03
 
Unagranhistoria
UnagranhistoriaUnagranhistoria
Unagranhistoria
 
AMWiki - Seite Erstellen
AMWiki - Seite ErstellenAMWiki - Seite Erstellen
AMWiki - Seite Erstellen
 
Temas 1 er parcial
Temas 1 er parcialTemas 1 er parcial
Temas 1 er parcial
 
Livraison Kro
Livraison  KroLivraison  Kro
Livraison Kro
 
Studienauszug social banking[1]
Studienauszug social banking[1]Studienauszug social banking[1]
Studienauszug social banking[1]
 
Liesmich
LiesmichLiesmich
Liesmich
 
Nachhaltigkeitswuerfel
NachhaltigkeitswuerfelNachhaltigkeitswuerfel
Nachhaltigkeitswuerfel
 
Fotoschuscas
FotoschuscasFotoschuscas
Fotoschuscas
 
DIPLOMA SUPPLEMENT VAZAIOU
DIPLOMA SUPPLEMENT VAZAIOUDIPLOMA SUPPLEMENT VAZAIOU
DIPLOMA SUPPLEMENT VAZAIOU
 
Ppt Institute
Ppt InstitutePpt Institute
Ppt Institute
 
Community Management Blaupause
Community Management BlaupauseCommunity Management Blaupause
Community Management Blaupause
 
Die Presse Börsenspiel 2014
Die Presse Börsenspiel 2014Die Presse Börsenspiel 2014
Die Presse Börsenspiel 2014
 
La energía
La energíaLa energía
La energía
 
Die Schüssel
Die SchüsselDie Schüssel
Die Schüssel
 

Similar a Polimorfismo

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha Jimhiz G
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfJCarlosCrespo
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en javajcalmeida2
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioJose Luis Moreno Arcos
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidadElena Perz
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Didier Granados
 

Similar a Polimorfismo (20)

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
 
interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidad
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 

Más de Kaddy Hernandez

Más de Kaddy Hernandez (13)

Circular externa 000014
Circular externa 000014Circular externa 000014
Circular externa 000014
 
Segundo en cuentro
Segundo en cuentroSegundo en cuentro
Segundo en cuentro
 
Interfaz de shwish max
Interfaz de shwish maxInterfaz de shwish max
Interfaz de shwish max
 
Producciones textuales
Producciones textualesProducciones textuales
Producciones textuales
 
El cuento infantil
El cuento infantilEl cuento infantil
El cuento infantil
 
Kiara cuento
Kiara cuentoKiara cuento
Kiara cuento
 
De todo un poco elvis copia[1]
De todo un poco elvis   copia[1]De todo un poco elvis   copia[1]
De todo un poco elvis copia[1]
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Ingeniería derequerimientos
Ingeniería derequerimientosIngeniería derequerimientos
Ingeniería derequerimientos
 
Repositorios cecar
Repositorios cecarRepositorios cecar
Repositorios cecar
 
Repositorios
RepositoriosRepositorios
Repositorios
 
Topologias de red
Topologias de redTopologias de red
Topologias de red
 
Plataformas virtuales objeto de aprendizaje
Plataformas virtuales objeto de aprendizajePlataformas virtuales objeto de aprendizaje
Plataformas virtuales objeto de aprendizaje
 

Polimorfismo

  • 2.
  • 3. 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
  • 4.  El polimorfismo va ligado a la herencia: objetos jerárquicamente relacionados responden en forma diferente al mismo mensaje
  • 5. Polimorfismo VS Sobrecarga 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)
  • 6. 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).
  • 7. 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
  • 8.
  • 9. Implementación public 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(); }
  • 10. Interface una interface es una clase abstracta pura, es decir una clase donde todos los métodos son abstractos Interface 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.
  • 11. 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 que debe hacer, pero sin desarrollar un mecanismo de solución
  • 12. 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()); } }
  • 13. Formas de Polimorfismo  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
  • 14. 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; } }
  • 15. 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?