SlideShare una empresa de Scribd logo
1 de 15
Ricardo More Reaño




  Java


Polimorfismo
Polimorfismo

         Es la propiedad que indica, literalmente, la
 posibilidad de que una entidad tome muchas formas.
 En términos prácticos, el polimorfismo permite
 referirse a objetos de clases diferentes mediante el
 mismo elemento de programa y realizar la misma
 operación de diferentes formas, según sea el objeto
 que se referencia en ese momento.
Tipos
  
      Sobrecarga de funciones y métodos
  
      Sobrescritura en la herencia
  
      Implementación de interfaces

                   Técnicas de Programación II Ciclo
Ejemplo de polimorfismo




    Técnicas de Programación II Ciclo
Polimorfismo

Sobrecarga
  Es la posibilidad de tener dos o más funciones
 con el mismo nombre pero funcionalidad
 diferente. Es decir, dos o más funciones con el
 mismo nombre realizan acciones diferentes.




                Técnicas de Programación II Ciclo
Ejemplo sobrecarga


class Calculadora {
 int suma(int x, int y) {
  return (x + y);
 }

    float suma(float x, float y) {
     return (x + y);
    }
}



                         Técnicas de Programación II Ciclo
Polimorfismo



Ocultamiento
  
      Desde un objeto de la clase derivada, siempre se
      accede al método sobrescrito.
  
      El método original queda “oculto”.
  
      La decisión de “a quien llamar” se resuelve
      basándose en el tipo de la variable del objeto.




                  Técnicas de Programación II Ciclo
Polimorfismo



    Ocultamiento: Problema 1
    class Base {
      public: void Metodo( ) {cout << "Base::Metodon"; }};
    class Derivada : public Base {
      public: void Metodo( ) {cout << "Deri::Metodon"; }};
    void main() {
       Base ObjBase; Derivada ObjDerivada; Base* pBase;
       pBase = &ObjBase;
       pBase->Metodo( );
       pBase = &ObjDerivada;
       pBase->Metodo( );
    }


                   Técnicas de Programación II Ciclo
Polimorfismo



Sobrescritura virtual
   
       Desde cualquier método de la clase base o
       derivada o desde fuera de ellas, una llamada a un
       método se resuelve en base al tipo del objeto, no el
       de la variable.




                   Técnicas de Programación II Ciclo
Polimorfismo




    Implementación de
    interfaces
    
      Concepto de Interfaz
    
      Definición:
        
            Java:
            interfaz UnaInterfaz { void Met( ); }

                    Técnicas de Programación II Ciclo
Polimorfismo



    Implementación de interfaces
     
       Java:
         interfaz Dibujable { ... }
         class Texto implements Dibujable { ... }

    
        Pueden tener herencia múltiple,
        reemplazando la herencia múltiple de
        clases.


                  Técnicas de Programación II Ciclo
Polimorfismo


    Clases Abstractas: Problema 1
using System;
abstract class Base{
    public void imprimir() {Console.WriteLine("Imprimir: Clase Base");}
    abstract public void metodo();
}
class Derivada : Base{
    new public void imprimir(){Console.WriteLine("Imprimir: Clase Derivada");}
    override public void metodo(){Console.WriteLine("Metodo: Clase Derivada");}
}
class MainClass{
    public static void Main(string[] args){
         Base objbase ;//= new Base();
         Derivada derivada = new Derivada();
         objbase = derivada;
         objbase.imprimir(); objBase.metodo();
         derivada.imprimir();derivada.metodo();
    }
}




                          Técnicas de Programación II Ciclo
Polimorfismo


                    Interfaz                           Clase abstracta

Declarar métodos                                      
abstractos
Implementar         X                                  
Métodos
Añadir datos        X                                  
miembros
Crear objetos       X                                  X
Crear arreglos,                                       
referencias


                   Técnicas de Programación II Ciclo
Ejercicios




Diseñar una clase Garaje que:
• En el constructor se indique el número total de plazas de garaje
• En cada plaza se pueda guardar tanto un coche como una moto
• Tenga una función que devuelva la cuota mensual de una plaza:
  -Si en dicha plaza hay un coche, la cuota se calcula como la potencia multiplicada
por el número de plazas
  -Si en dicha plaza hay una moto, la cuota se calcula como la potencia multiplicada
por 2
  -Si no hay ningún vehículo en la plaza, la cuota es 0



                                  Técnicas de Programación II Ciclo
Ejercicios


Se quiere elaborar el catálogo de un museo para lo
cual se deben modelar las siguientes entidades:
a) Los artistas, de los que se quiere guardar
información acerca de su nombre y lugar de
nacimiento, así como la fecha de su natalicio y de su
fallecimiento.




                 Técnicas de Programación II Ciclo
b) Las obras artísticas, de cada una de las cuales se
desea conocer su título, su número de inventario, su
autor y el año en que la realizó. En el museo solo
hay dos tipos de obras: esculturas y pinturas. De las
primeras se quiere guardar información sobre el
material en que fueron hechas y la altura que
poseen. De las pinturas en cambio, se guardará
información de sus dimensiones y del soporte en que
han sido realizadas.
c) El catálogo es una secuencia de obras artísticas.


                Técnicas de Programación II Ciclo

Más contenido relacionado

La actualidad más candente

IEEE 829 2008:Software and System Test Documentation
IEEE 829 2008:Software and System Test DocumentationIEEE 829 2008:Software and System Test Documentation
IEEE 829 2008:Software and System Test DocumentationJesús Navarro
 
PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHPVibrant Technologies & Computers
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Learn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & MethodsLearn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & MethodsEng Teong Cheah
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a ObjetosIsmael Perea
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadoresClara Patricia Avella Ibañez
 
Abstract Class Presentation
Abstract Class PresentationAbstract Class Presentation
Abstract Class Presentationtigerwarn
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 

La actualidad más candente (20)

IEEE 829 2008:Software and System Test Documentation
IEEE 829 2008:Software and System Test DocumentationIEEE 829 2008:Software and System Test Documentation
IEEE 829 2008:Software and System Test Documentation
 
PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Learn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & MethodsLearn C# Programming - Encapsulation & Methods
Learn C# Programming - Encapsulation & Methods
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
MVC
MVCMVC
MVC
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
10.Polimorfismo Java
10.Polimorfismo Java10.Polimorfismo Java
10.Polimorfismo Java
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
Fun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetosFun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetos
 
colecciones en java
colecciones en javacolecciones en java
colecciones en java
 
Exposición Diagrama de Clases
Exposición Diagrama de ClasesExposición Diagrama de Clases
Exposición Diagrama de Clases
 
Inner classes in java
Inner classes in javaInner classes in java
Inner classes in java
 
Encapsulamiento poo
Encapsulamiento pooEncapsulamiento poo
Encapsulamiento poo
 
Exception Handling in Java
Exception Handling in JavaException Handling in Java
Exception Handling in Java
 
Abstract Class Presentation
Abstract Class PresentationAbstract Class Presentation
Abstract Class Presentation
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
18 Curso POO en java - contenedores
18 Curso POO en java - contenedores18 Curso POO en java - contenedores
18 Curso POO en java - contenedores
 

Destacado

POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en javaJavier
 
Polimorfismo
PolimorfismoPolimorfismo
PolimorfismoUVM
 
Clases Anidadas en java
Clases Anidadas en javaClases Anidadas en java
Clases Anidadas en javajent46
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Pooflekoso
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGJose Benítez Andrades
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...flekoso
 
Poliformismo
PoliformismoPoliformismo
PoliformismoSa_Van
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaIngeniería Nica
 
POO Programación Orientada a Objetos
POO Programación Orientada a ObjetosPOO Programación Orientada a Objetos
POO Programación Orientada a ObjetosLuis Berganza
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 

Destacado (20)

POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Instructoria de Herencia en java
Instructoria de Herencia en javaInstructoria de Herencia en java
Instructoria de Herencia en java
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Programación III (Java) - 07b Swing
Programación III (Java) - 07b SwingProgramación III (Java) - 07b Swing
Programación III (Java) - 07b Swing
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Clases Anidadas en java
Clases Anidadas en javaClases Anidadas en java
Clases Anidadas en java
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Poo
 
MéTodos En Java
MéTodos En JavaMéTodos En Java
MéTodos En Java
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWING
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
 
Poliformismo
PoliformismoPoliformismo
Poliformismo
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y Java
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
POO Programación Orientada a Objetos
POO Programación Orientada a ObjetosPOO Programación Orientada a Objetos
POO Programación Orientada a Objetos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 

Similar a Polimorfismo Java (20)

Tema 8 polimorfismo
Tema 8 polimorfismoTema 8 polimorfismo
Tema 8 polimorfismo
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Apuntes
ApuntesApuntes
Apuntes
 
Apuntes
ApuntesApuntes
Apuntes
 
clases y objetos
clases y objetosclases y objetos
clases y objetos
 
C++
C++C++
C++
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5
 
Adentrándonos a PHP 5
Adentrándonos a PHP 5Adentrándonos a PHP 5
Adentrándonos a PHP 5
 
Programación C++.pdf
Programación C++.pdfProgramación C++.pdf
Programación C++.pdf
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓNNIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
NIVEL DE PROGRAMACIÓN WEB INTRODUCCIÓN
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Cplus
CplusCplus
Cplus
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 

Último

HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.profandrearivero
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 

Último (20)

HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 

Polimorfismo Java

  • 1. Ricardo More Reaño Java Polimorfismo
  • 2. Polimorfismo Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento. Tipos  Sobrecarga de funciones y métodos  Sobrescritura en la herencia  Implementación de interfaces Técnicas de Programación II Ciclo
  • 3. Ejemplo de polimorfismo Técnicas de Programación II Ciclo
  • 4. Polimorfismo Sobrecarga Es la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. Técnicas de Programación II Ciclo
  • 5. Ejemplo sobrecarga class Calculadora { int suma(int x, int y) { return (x + y); } float suma(float x, float y) { return (x + y); } } Técnicas de Programación II Ciclo
  • 6. Polimorfismo Ocultamiento  Desde un objeto de la clase derivada, siempre se accede al método sobrescrito.  El método original queda “oculto”.  La decisión de “a quien llamar” se resuelve basándose en el tipo de la variable del objeto. Técnicas de Programación II Ciclo
  • 7. Polimorfismo  Ocultamiento: Problema 1 class Base { public: void Metodo( ) {cout << "Base::Metodon"; }}; class Derivada : public Base { public: void Metodo( ) {cout << "Deri::Metodon"; }}; void main() { Base ObjBase; Derivada ObjDerivada; Base* pBase; pBase = &ObjBase; pBase->Metodo( ); pBase = &ObjDerivada; pBase->Metodo( ); } Técnicas de Programación II Ciclo
  • 8. Polimorfismo Sobrescritura virtual  Desde cualquier método de la clase base o derivada o desde fuera de ellas, una llamada a un método se resuelve en base al tipo del objeto, no el de la variable. Técnicas de Programación II Ciclo
  • 9. Polimorfismo  Implementación de interfaces  Concepto de Interfaz  Definición:  Java: interfaz UnaInterfaz { void Met( ); } Técnicas de Programación II Ciclo
  • 10. Polimorfismo  Implementación de interfaces  Java: interfaz Dibujable { ... } class Texto implements Dibujable { ... }  Pueden tener herencia múltiple, reemplazando la herencia múltiple de clases. Técnicas de Programación II Ciclo
  • 11. Polimorfismo  Clases Abstractas: Problema 1 using System; abstract class Base{ public void imprimir() {Console.WriteLine("Imprimir: Clase Base");} abstract public void metodo(); } class Derivada : Base{ new public void imprimir(){Console.WriteLine("Imprimir: Clase Derivada");} override public void metodo(){Console.WriteLine("Metodo: Clase Derivada");} } class MainClass{ public static void Main(string[] args){ Base objbase ;//= new Base(); Derivada derivada = new Derivada(); objbase = derivada; objbase.imprimir(); objBase.metodo(); derivada.imprimir();derivada.metodo(); } } Técnicas de Programación II Ciclo
  • 12. Polimorfismo Interfaz Clase abstracta Declarar métodos   abstractos Implementar X  Métodos Añadir datos X  miembros Crear objetos X X Crear arreglos,   referencias Técnicas de Programación II Ciclo
  • 13. Ejercicios Diseñar una clase Garaje que: • En el constructor se indique el número total de plazas de garaje • En cada plaza se pueda guardar tanto un coche como una moto • Tenga una función que devuelva la cuota mensual de una plaza: -Si en dicha plaza hay un coche, la cuota se calcula como la potencia multiplicada por el número de plazas -Si en dicha plaza hay una moto, la cuota se calcula como la potencia multiplicada por 2 -Si no hay ningún vehículo en la plaza, la cuota es 0 Técnicas de Programación II Ciclo
  • 14. Ejercicios Se quiere elaborar el catálogo de un museo para lo cual se deben modelar las siguientes entidades: a) Los artistas, de los que se quiere guardar información acerca de su nombre y lugar de nacimiento, así como la fecha de su natalicio y de su fallecimiento. Técnicas de Programación II Ciclo
  • 15. b) Las obras artísticas, de cada una de las cuales se desea conocer su título, su número de inventario, su autor y el año en que la realizó. En el museo solo hay dos tipos de obras: esculturas y pinturas. De las primeras se quiere guardar información sobre el material en que fueron hechas y la altura que poseen. De las pinturas en cambio, se guardará información de sus dimensiones y del soporte en que han sido realizadas. c) El catálogo es una secuencia de obras artísticas. Técnicas de Programación II Ciclo

Notas del editor

  1. El valor de retorno no puede diferenciar, por si solo, dos sobrecargas.
  2. La implementación del ocultamiento es eficiente puesto que se resuelve en tiempo de compilación. El compilador puede determinar a quien se debe llamar de forma “segura”, es decir, es claro siempre a quien se debe de llamar. C# exige que se declare un ocultamiento utilizando “new”
  3. El tipo de la variable no coincide con el tipo del objeto. El objeto referenciado puede ser de un tipo derivado, por lo que la llamada puede ser “incorrecta”. En el ejemplo mostrado, en la peníltima línea “pBase” no apunta a un objeto “Base” por lo que la llamada a “Metodo” se resuelve hacia la implementación en “Base”, cuando lo que probablemente se deseaba era que sea resuelta hacia “Derivada”, el tipo del objeto, no el de la variable.
  4. La decisión de “a quien se llama” no puede resolverse durante la compilación, dado que no se conoce en dicho momento que tipo de objeto
  5. Interfaz: Define el comportamiento de una clase, no su implementación.
  6. Explicar: Por que Java y C# no utilizan herencia múltiple, esto es, que la herencia múltiple: Hace dificil resolver comflictos de espacios de nombres Es posible duplicidad de datos Internamente es complicado de implementar y produce código más lento
  7. Explicar que: No se puede crear una instancia de la clase abstracta. Una clase abstracta puede implementar un método no abstracto. Un método abstracto debe estar dentro de una clase abstracta. Un método abstracto no debe ser implementado en la clase base, es implementado en las clases derivadas.
  8. Java: Las interfaces pueden tener datos miembros constantes (final, automático). Automáticamente todos los miembros de una interfaz son públicos. C#: Las interfaces no pueden tener datos miembros. C# está orientado al desarrollo de componentes. Los componentes deben interactuar mediante una interfaz con el exterior. Esta interfaz solo la deben componer métodos, debido a : El exponer datos directamente puede modificar incorrectamente el componente y los tipos de dato pueden no ser estándar. C#: reemplaza esto con el uso de propiedades.