SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
POLIMORFISMO
"una interfaz, múltiples
métodos".
POLIMORFISMO
Indice
Definición y caracteristicas
Objetivos.
SOBRRESCRITURA-SOBRECARGA
Clases y métodos abstractos
INTERFACES (herencia múltiple)
Subclase,Clase abstracta e Interface
Interface vs. Clase Abstracta
Ejemplo: (4)Project Musica (Instrumentos).

20/02/2007

Polimorfismo

2
POLIMORFISMO
Definicion y características
Son dos mecanismos (up,downcasting)
relacionados que otorgan a la OOP una gran
potencia frente a otros paradigmas de
programación
Únicamente tienen sentido por la existencia
de la herencia
El sentido del polimorfismo (up-casting) es realizar una
generalización, olvidar los detalles concretos de uno o
varios objetos de distintas clases y buscar un punto
común a todos ellos en un ancestro.

20/02/2007

Polimorfismo

3
POLIMORFISMO
Definicion y características
Una variable referencia es polimórfica cuando
su tipo de declaración no coincide con el tipo del
objeto al que referencia:

Figura f1 = new Figura(“Estandar”, “Rojo”);

Figura f2 = new Circulo(“Verde”, 5.0);

20/02/2007

Polimorfismo

4
POLIMORFISMO
Definicion y características
El polimorfismo esta presente cuando se envia un
mensaje a un objeto del que no se sabe su tipo,
ejecutándose el método adecuado de acuerdo con su
tipo.
Enlace dinámico: Se elige el método a ejecutar en
tiempo de ejecución, en función de la clase del objeto;
Es la implementación del polimorfismo.

20/02/2007

Polimorfismo

5
POLIMORFISMO
Definicion y características
Moldes de objetos(castings):
Realizan conversiones de tipo, no modifican al objeto,
solo su tipo.
Upcasting : Interpretar un objeto de una clase derivada
como del mismo tipo que la clase base.
No hace falta especificarlo

Downcasting: Interpretar un objeto de una clase base
como del mismo tipo que una clase derivada suya.
Se especifica precediendo al objeto a convertir con el nuevo tipo
entre paréntesis.

20/02/2007

Polimorfismo

6
POLIMORFISMO
Definicion y características

Ejemplo upcasting polimorfismo
(1)Project Polimorfismo,Polimorfismo2
(Mamifero).

20/02/2007

Polimorfismo

7
POLIMORFISMO
Definición y características
Tras realizar una conexión polimorfa es frecuente la necesidad de
volver a recuperar el objeto original, para acceder a sus
operaciones propias.
Se trata de la operación inversa al polimorfismo(upcasting),
denominada downcasting.
Si el polimorfismo implica una generalización, el downcasting
implica una especialización.
Al contrario que el upcasting, el downcasting no puede realizarse
directamente mediante una conexión con una referencia de la clase
del objeto.

20/02/2007

Polimorfismo

8
POLIMORFISMO
Definición y características
Utilizar instanceof para determinar si el objeto es de la
clase esperada antes de realizar el casting.

La operación getClass () de Object devuelve un objeto
de la clase Class que permite obtener en tiempo de
ejecución gran cantidad de información de la clase a la
que pertenece el objeto. El atributo estático class de la
clase también devuelve una referencia a este objeto

20/02/2007

Polimorfismo

9
POLIMORFISMO
Objetivos

Objetivo: reutilizacion y flexibilidad.
Facilidad para adaptarse a cambios
¿Cómo se consigue?
Interfaces
Clases abstractas
Métodos polimórficos

Implementación de colecciones y métodos
genéricos.
20/02/2007

Polimorfismo

10
POLIMORFISMO
Objetivos
Permite código independiente del tipo.
Fácil de escribir y entender.

Al añadir nuevos tipos:
• No hay que reescribir código
• Programas extensibles

20/02/2007

Polimorfismo

11
POLIMORFISMO
Objetivos

ANIMAL
FELINO
LEON

20/02/2007

TIGRE

CANINO
GATO

Polimorfismo

LOBO

PERRO

12
POLIMORFISMO
Objetivos
EJEMPLO DE COLECCIÓN GENÉRICA
public class TestPolimorfismo{
public static void main(String[] args) {
Animal[] animales = new Animal[4];
animales[0] = new Lobo();
animales[1] = new Perro();
animales[2] = new Leon();
animales[3] = new Tigre();
for(int i=0; i<animales.length; i++) {
animales[i].dormir();
animales[i].comer();
}
}
}

20/02/2007

Polimorfismo

13
POLIMORFISMO
Objetivos
MATEMÁTICO

FIGURA
CUADRADO

20/02/2007

TRIANGULO

CIRCULO

Polimorfismo

14
POLIMORFISMO
Objetivos
EJEMPLO DE MÉTODO GENÉRICO
public class Matematico{
public double calcularArea(Figura param) {
return param.calcularArea();
}
}
public class TestPolimorfismo {
public static void main(String[] args)
{
Matematico m = new Matematico();
m.calcularArea(new Circulo());
m.calcularArea(new Triangulo());
}
}

20/02/2007

Polimorfismo

15
POLIMORFISMO
SOBREESCRITURA-SOBRECARGA
SOBREESCRITURA: La subclase reimplementa el
método heredado (cambian el comportamiento).
SOBRECARGA: Varias implementaciones del mismo
método con distintos parámetros (cambio de interfaz).
Muy habitual en constructores.
Es aquí donde realmente se aprecia los beneficios del polimorfismo.
Sobrecargando el constructor conseguimos dotar a la clase de
flexibilidad.
Pero siempre debe quedar claro que tras la conexión polimorfa
únicamente podemos acceder a las operaciones pertenecientes a la
clase asociada a la referencia. El resto de operaciones del objeto no
son accesibles a través de esta referencia

20/02/2007

Polimorfismo

16
POLIMORFISMO
SOBRRESCRITURA-SOBRECARGA
//Sobrecarga de constructores
class Box {
double width;
double height;
double depth;
//El siguiente es el constructor específico
Box(double w, double h, double d) {
width = w; height = h; depth = d;
}
Box () {
width = height = depth = -1
//-1 indica volumen no existente
}
//Cubo,entonces, por qué introducir 3 valores?
Box (double valor) {
width = height = depth = valor;
}
double volume() {
return width * height * depth;
}

20/02/2007

Polimorfismo

17
POLIMORFISMO
Clases y métodos abstractos
Clases abstractas: A menudo existen clases que
sirven para definir un tipo genérico pero que no
tiene sentido instanciar (crear objetos de ella).
Métodos abstractos: Un método abstracto
significa que tiene que ser sobrescrito. No está
implementado.
Una clase con uno o varios métodos abstractos
tiene que ser declarada abstracta.
No obstante una clase abstracta no tiene porque
tener métodos abstractos.
20/02/2007

Polimorfismo

18
POLIMORFISMO
INTERFACES (herencia múltiple)
Los interfaces en Java nos solucionan en parte la no
existencia de la herencia múltiple.
Los interfaces son un tipo de clase especial que no
implementa ninguno de sus métodos. Todos son
abstractos. Por tanto no se pueden instanciar.
De los interfaces también se hereda, aunque se Suele
decir implementa. Y se realiza mediante la keyword:
implements.
Si una clase que hereda de un interface, no implementa
todos los métodos de este, deberá ser definida como
abstracta.

20/02/2007

Polimorfismo

19
POLIMORFISMO
INTERFACES (herencia múltiple)
¿Para qué se utiliza?
Para permitir la herencia múltiple (ya que la herencia en
Java sólo permite heredar de una sola clase).
Definen un comportamiento (o funcionalidad) genérico,
ignorando los aspectos relacionados con su
implementación.
Las interfaces que implementa una clase se comportan
igual que las superclases en lo que respecta al uso del
polimorfismo.
20/02/2007

Polimorfismo

20
POLIMORFISMO
INTERFACES (herencia múltiple)
(3)Project HerenciaMultiple2 (Anfibio).

20/02/2007

Polimorfismo

21
POLIMORFISMO
Subclase,Clase abstracta e Interface
Subclase: Necesitemos hacer una especialización de la
superclase mediante sobreescritura o añadiendo nuevos métodos.

Clase abstracta: Queremos definir un grupo genérico de clases y
además tengamos algunos métodos implementados que reutilizar.

Interface: Queremos definir un grupo genérico de clases y no
tengamos métodos implementados que reutilizar. O cuando nos
veamos forzados por la falta de herencia múltiple en Java.

20/02/2007

Polimorfismo

22
POLIMORFISMO
Interface vs. Clase Abstracta
Un interface no puede implementar ningún método.
Un interface no forma parte de la jerarquía de clases.
Clases dispares pueden implementar el mismo interface.

Una clase puede implementar n interfaces pero solo una
clase.
El objetivo de un método abstracto es forzar una interfaz
(API) pero no una implementación.

20/02/2007

Polimorfismo

23
POLIMORFISMO
Interface vs. Clase Abstracta
Haremos un interface cuando queramos definir un
grupo genérico de clases y no tengamos métodos
implementados que reutilizar. O cuando nos
veamos forzados por la falta de herencia múltiple
en Java.

20/02/2007

Polimorfismo

24
POLIMORFISMO
Ejemplos de polimorfismo

(4)Project Musica (Instrumentos).

20/02/2007

Polimorfismo

25
DIAGRAMA DE CLASES: MUSICA

20/02/2007

Polimorfismo

26

Weitere ähnliche Inhalte

Was ist angesagt?

Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)Roberto Rojas
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLGabriel Cortez
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la pooBoris Salleg
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisisinnovalabcun
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaJosé Antonio Sandoval Acosta
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 

Was ist angesagt? (20)

Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
1. introduccion a la programación orientada a objeto (poo)
1.  introduccion a la programación orientada a objeto (poo)1.  introduccion a la programación orientada a objeto (poo)
1. introduccion a la programación orientada a objeto (poo)
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Introduccion a la poo
Introduccion a la pooIntroduccion a la poo
Introduccion a la poo
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Qué es la poo
Qué es la pooQué es la poo
Qué es la poo
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 

Ähnlich wie polimorfismo

Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
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 InterfacesEmilio Aviles Avila
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidadElena Perz
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
3 Bases De La OrientacióN A Objetos
3  Bases De La OrientacióN A Objetos3  Bases De La OrientacióN A Objetos
3 Bases De La OrientacióN A ObjetosHectorMamani
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxjuan gonzalez
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptxjuan gonzalez
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosJonathan Macías
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Hack '
 
POO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfPOO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfNone
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E InterfacesNetwork Sens
 

Ähnlich wie polimorfismo (20)

Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
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
 
4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
Investigacion v unidad
Investigacion v unidadInvestigacion v unidad
Investigacion v unidad
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Polimorfism oo
Polimorfism ooPolimorfism oo
Polimorfism oo
 
Java OO - Tema 06 - Interfaces
Java OO - Tema 06 -  InterfacesJava OO - Tema 06 -  Interfaces
Java OO - Tema 06 - Interfaces
 
3 Bases De La OrientacióN A Objetos
3  Bases De La OrientacióN A Objetos3  Bases De La OrientacióN A Objetos
3 Bases De La OrientacióN A Objetos
 
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptxMecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
Mecanismos-de-abstraccion-en-Java PARA PROGRAMAR.pptx
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]Java morld cap2 [CURSO JAVA]
Java morld cap2 [CURSO JAVA]
 
Aprendiendo objetos en c++
Aprendiendo objetos en c++Aprendiendo objetos en c++
Aprendiendo objetos en c++
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Guía polimorfismo
Guía polimorfismoGuía polimorfismo
Guía polimorfismo
 
Mapa conceptual
Mapa conceptual Mapa conceptual
Mapa conceptual
 
POO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdfPOO-3-Herencia-10-11.pdf
POO-3-Herencia-10-11.pdf
 
Poo 3-herencia-10-11
Poo 3-herencia-10-11Poo 3-herencia-10-11
Poo 3-herencia-10-11
 
09 Clases Abstractas E Interfaces
09   Clases Abstractas E Interfaces09   Clases Abstractas E Interfaces
09 Clases Abstractas E Interfaces
 

Kürzlich hochgeladen

diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddabuitragoi
 
Torre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificioTorre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificio2021ArqROLDANBERNALD
 
Topografía cuadro de construcción ing.civil
Topografía cuadro de construcción ing.civilTopografía cuadro de construcción ing.civil
Topografía cuadro de construcción ing.civilmeloamerica93
 
Presentación Proyecto Vintage Scrapbook Marrón (1).pdf
Presentación Proyecto Vintage Scrapbook Marrón (1).pdfPresentación Proyecto Vintage Scrapbook Marrón (1).pdf
Presentación Proyecto Vintage Scrapbook Marrón (1).pdfAdrianaCarolinaMoral2
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialAndreaMlaga1
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesespejosflorida
 
Arquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfArquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfLeonardoDantasRivas
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfhellotunahaus
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturajesusgrosales12
 
Diseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasDiseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasRiegosVeracruz
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoJorge Fernandez
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfcucciolosfabrica
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezPaola575380
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfBrbara57940
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfasnsdt
 
Geometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroGeometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroJuan Carlos Fonseca Mata
 
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOManuelBustamante49
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfslaimenbarakat
 

Kürzlich hochgeladen (20)

diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidad
 
Torre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificioTorre 222 sobre instalaciones de este mismo edificio
Torre 222 sobre instalaciones de este mismo edificio
 
Topografía cuadro de construcción ing.civil
Topografía cuadro de construcción ing.civilTopografía cuadro de construcción ing.civil
Topografía cuadro de construcción ing.civil
 
Presentación Proyecto Vintage Scrapbook Marrón (1).pdf
Presentación Proyecto Vintage Scrapbook Marrón (1).pdfPresentación Proyecto Vintage Scrapbook Marrón (1).pdf
Presentación Proyecto Vintage Scrapbook Marrón (1).pdf
 
plantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especialplantilla-de-messi-1.pdf es muy especial
plantilla-de-messi-1.pdf es muy especial
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientes
 
1.La locomoción de los seres vivos diseño
1.La locomoción de los seres vivos diseño1.La locomoción de los seres vivos diseño
1.La locomoción de los seres vivos diseño
 
Arquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfArquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdf
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdf
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitectura
 
Diseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicasDiseño de sifones y alcantarillas para obras hidraulicas
Diseño de sifones y alcantarillas para obras hidraulicas
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimiento
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdf
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola Perez
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
 
Arte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusaArte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusa
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
 
Geometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de QuerétaroGeometrías de la imaginación: Diseño e iconografía de Querétaro
Geometrías de la imaginación: Diseño e iconografía de Querétaro
 
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
 

polimorfismo

  • 2. POLIMORFISMO Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple) Subclase,Clase abstracta e Interface Interface vs. Clase Abstracta Ejemplo: (4)Project Musica (Instrumentos). 20/02/2007 Polimorfismo 2
  • 3. POLIMORFISMO Definicion y características Son dos mecanismos (up,downcasting) relacionados que otorgan a la OOP una gran potencia frente a otros paradigmas de programación Únicamente tienen sentido por la existencia de la herencia El sentido del polimorfismo (up-casting) es realizar una generalización, olvidar los detalles concretos de uno o varios objetos de distintas clases y buscar un punto común a todos ellos en un ancestro. 20/02/2007 Polimorfismo 3
  • 4. POLIMORFISMO Definicion y características Una variable referencia es polimórfica cuando su tipo de declaración no coincide con el tipo del objeto al que referencia: Figura f1 = new Figura(“Estandar”, “Rojo”); Figura f2 = new Circulo(“Verde”, 5.0); 20/02/2007 Polimorfismo 4
  • 5. POLIMORFISMO Definicion y características El polimorfismo esta presente cuando se envia un mensaje a un objeto del que no se sabe su tipo, ejecutándose el método adecuado de acuerdo con su tipo. Enlace dinámico: Se elige el método a ejecutar en tiempo de ejecución, en función de la clase del objeto; Es la implementación del polimorfismo. 20/02/2007 Polimorfismo 5
  • 6. POLIMORFISMO Definicion y características Moldes de objetos(castings): Realizan conversiones de tipo, no modifican al objeto, solo su tipo. Upcasting : Interpretar un objeto de una clase derivada como del mismo tipo que la clase base. No hace falta especificarlo Downcasting: Interpretar un objeto de una clase base como del mismo tipo que una clase derivada suya. Se especifica precediendo al objeto a convertir con el nuevo tipo entre paréntesis. 20/02/2007 Polimorfismo 6
  • 7. POLIMORFISMO Definicion y características Ejemplo upcasting polimorfismo (1)Project Polimorfismo,Polimorfismo2 (Mamifero). 20/02/2007 Polimorfismo 7
  • 8. POLIMORFISMO Definición y características Tras realizar una conexión polimorfa es frecuente la necesidad de volver a recuperar el objeto original, para acceder a sus operaciones propias. Se trata de la operación inversa al polimorfismo(upcasting), denominada downcasting. Si el polimorfismo implica una generalización, el downcasting implica una especialización. Al contrario que el upcasting, el downcasting no puede realizarse directamente mediante una conexión con una referencia de la clase del objeto. 20/02/2007 Polimorfismo 8
  • 9. POLIMORFISMO Definición y características Utilizar instanceof para determinar si el objeto es de la clase esperada antes de realizar el casting. La operación getClass () de Object devuelve un objeto de la clase Class que permite obtener en tiempo de ejecución gran cantidad de información de la clase a la que pertenece el objeto. El atributo estático class de la clase también devuelve una referencia a este objeto 20/02/2007 Polimorfismo 9
  • 10. POLIMORFISMO Objetivos Objetivo: reutilizacion y flexibilidad. Facilidad para adaptarse a cambios ¿Cómo se consigue? Interfaces Clases abstractas Métodos polimórficos Implementación de colecciones y métodos genéricos. 20/02/2007 Polimorfismo 10
  • 11. POLIMORFISMO Objetivos Permite código independiente del tipo. Fácil de escribir y entender. Al añadir nuevos tipos: • No hay que reescribir código • Programas extensibles 20/02/2007 Polimorfismo 11
  • 13. POLIMORFISMO Objetivos EJEMPLO DE COLECCIÓN GENÉRICA public class TestPolimorfismo{ public static void main(String[] args) { Animal[] animales = new Animal[4]; animales[0] = new Lobo(); animales[1] = new Perro(); animales[2] = new Leon(); animales[3] = new Tigre(); for(int i=0; i<animales.length; i++) { animales[i].dormir(); animales[i].comer(); } } } 20/02/2007 Polimorfismo 13
  • 15. POLIMORFISMO Objetivos EJEMPLO DE MÉTODO GENÉRICO public class Matematico{ public double calcularArea(Figura param) { return param.calcularArea(); } } public class TestPolimorfismo { public static void main(String[] args) { Matematico m = new Matematico(); m.calcularArea(new Circulo()); m.calcularArea(new Triangulo()); } } 20/02/2007 Polimorfismo 15
  • 16. POLIMORFISMO SOBREESCRITURA-SOBRECARGA SOBREESCRITURA: La subclase reimplementa el método heredado (cambian el comportamiento). SOBRECARGA: Varias implementaciones del mismo método con distintos parámetros (cambio de interfaz). Muy habitual en constructores. Es aquí donde realmente se aprecia los beneficios del polimorfismo. Sobrecargando el constructor conseguimos dotar a la clase de flexibilidad. Pero siempre debe quedar claro que tras la conexión polimorfa únicamente podemos acceder a las operaciones pertenecientes a la clase asociada a la referencia. El resto de operaciones del objeto no son accesibles a través de esta referencia 20/02/2007 Polimorfismo 16
  • 17. POLIMORFISMO SOBRRESCRITURA-SOBRECARGA //Sobrecarga de constructores class Box { double width; double height; double depth; //El siguiente es el constructor específico Box(double w, double h, double d) { width = w; height = h; depth = d; } Box () { width = height = depth = -1 //-1 indica volumen no existente } //Cubo,entonces, por qué introducir 3 valores? Box (double valor) { width = height = depth = valor; } double volume() { return width * height * depth; } 20/02/2007 Polimorfismo 17
  • 18. POLIMORFISMO Clases y métodos abstractos Clases abstractas: A menudo existen clases que sirven para definir un tipo genérico pero que no tiene sentido instanciar (crear objetos de ella). Métodos abstractos: Un método abstracto significa que tiene que ser sobrescrito. No está implementado. Una clase con uno o varios métodos abstractos tiene que ser declarada abstracta. No obstante una clase abstracta no tiene porque tener métodos abstractos. 20/02/2007 Polimorfismo 18
  • 19. POLIMORFISMO INTERFACES (herencia múltiple) Los interfaces en Java nos solucionan en parte la no existencia de la herencia múltiple. Los interfaces son un tipo de clase especial que no implementa ninguno de sus métodos. Todos son abstractos. Por tanto no se pueden instanciar. De los interfaces también se hereda, aunque se Suele decir implementa. Y se realiza mediante la keyword: implements. Si una clase que hereda de un interface, no implementa todos los métodos de este, deberá ser definida como abstracta. 20/02/2007 Polimorfismo 19
  • 20. POLIMORFISMO INTERFACES (herencia múltiple) ¿Para qué se utiliza? Para permitir la herencia múltiple (ya que la herencia en Java sólo permite heredar de una sola clase). Definen un comportamiento (o funcionalidad) genérico, ignorando los aspectos relacionados con su implementación. Las interfaces que implementa una clase se comportan igual que las superclases en lo que respecta al uso del polimorfismo. 20/02/2007 Polimorfismo 20
  • 21. POLIMORFISMO INTERFACES (herencia múltiple) (3)Project HerenciaMultiple2 (Anfibio). 20/02/2007 Polimorfismo 21
  • 22. POLIMORFISMO Subclase,Clase abstracta e Interface Subclase: Necesitemos hacer una especialización de la superclase mediante sobreescritura o añadiendo nuevos métodos. Clase abstracta: Queremos definir un grupo genérico de clases y además tengamos algunos métodos implementados que reutilizar. Interface: Queremos definir un grupo genérico de clases y no tengamos métodos implementados que reutilizar. O cuando nos veamos forzados por la falta de herencia múltiple en Java. 20/02/2007 Polimorfismo 22
  • 23. POLIMORFISMO Interface vs. Clase Abstracta Un interface no puede implementar ningún método. Un interface no forma parte de la jerarquía de clases. Clases dispares pueden implementar el mismo interface. Una clase puede implementar n interfaces pero solo una clase. El objetivo de un método abstracto es forzar una interfaz (API) pero no una implementación. 20/02/2007 Polimorfismo 23
  • 24. POLIMORFISMO Interface vs. Clase Abstracta Haremos un interface cuando queramos definir un grupo genérico de clases y no tengamos métodos implementados que reutilizar. O cuando nos veamos forzados por la falta de herencia múltiple en Java. 20/02/2007 Polimorfismo 24
  • 25. POLIMORFISMO Ejemplos de polimorfismo (4)Project Musica (Instrumentos). 20/02/2007 Polimorfismo 25
  • 26. DIAGRAMA DE CLASES: MUSICA 20/02/2007 Polimorfismo 26