SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 
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
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
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
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
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
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonwozgeass
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura1da4
 

Mais procurados (20)

Encapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANSEncapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANS
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
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
 
Polimorfismo y herencia
Polimorfismo y herenciaPolimorfismo y herencia
Polimorfismo y herencia
 
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
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la Programación
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
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)
 
Unidad 3: Herencia Ejercicio 3
Unidad 3: Herencia Ejercicio 3Unidad 3: Herencia Ejercicio 3
Unidad 3: Herencia Ejercicio 3
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Poo
PooPoo
Poo
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
POO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basuraPOO: Encapsulamiento, principio de ocultación, recolección de basura
POO: Encapsulamiento, principio de ocultación, recolección de basura
 

Semelhante a polimorfismo

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
 
Sesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlSesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlHugo Flores
 

Semelhante a polimorfismo (20)

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
 
Sesion2 Php Oo Y Mysql
Sesion2 Php Oo Y MysqlSesion2 Php Oo Y Mysql
Sesion2 Php Oo Y Mysql
 

Último

SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptx
SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptxSESION 05 MOBILIARIO Y EQUIPAMIENTO.pptx
SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptxJustoAlbertoBaltaSmi
 
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
 
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
 
Bianchi_Susana_Historia_social_del_mundo-34-43.pdf
Bianchi_Susana_Historia_social_del_mundo-34-43.pdfBianchi_Susana_Historia_social_del_mundo-34-43.pdf
Bianchi_Susana_Historia_social_del_mundo-34-43.pdfAgustnRomeroFernndez
 
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
 
INTERVENCIONES DE CARRETERAS EN LA LIBERTAD
INTERVENCIONES DE CARRETERAS  EN LA LIBERTADINTERVENCIONES DE CARRETERAS  EN LA LIBERTAD
INTERVENCIONES DE CARRETERAS EN LA LIBERTADMaryNavarro1717
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesespejosflorida
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezPaola575380
 
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfCLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfDanielaPrezMartnez3
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfslaimenbarakat
 
Introduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxIntroduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxcalc5597
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosCristianGmez22034
 
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
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturajesusgrosales12
 
140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.docilvrosiebp
 
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
 
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
 
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
 
Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30SantiagoAgudelo47
 
Planificación del mes de afrovenezolanidad2024.doc
Planificación del mes de afrovenezolanidad2024.docPlanificación del mes de afrovenezolanidad2024.doc
Planificación del mes de afrovenezolanidad2024.docAhilynBasabe
 

Último (20)

SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptx
SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptxSESION 05 MOBILIARIO Y EQUIPAMIENTO.pptx
SESION 05 MOBILIARIO Y EQUIPAMIENTO.pptx
 
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
 
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
 
Bianchi_Susana_Historia_social_del_mundo-34-43.pdf
Bianchi_Susana_Historia_social_del_mundo-34-43.pdfBianchi_Susana_Historia_social_del_mundo-34-43.pdf
Bianchi_Susana_Historia_social_del_mundo-34-43.pdf
 
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
 
INTERVENCIONES DE CARRETERAS EN LA LIBERTAD
INTERVENCIONES DE CARRETERAS  EN LA LIBERTADINTERVENCIONES DE CARRETERAS  EN LA LIBERTAD
INTERVENCIONES DE CARRETERAS EN LA LIBERTAD
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientes
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola Perez
 
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfCLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
 
Introduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxIntroduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptx
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivos
 
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
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitectura
 
140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc
 
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
 
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
 
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
 
Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30
 
Planificación del mes de afrovenezolanidad2024.doc
Planificación del mes de afrovenezolanidad2024.docPlanificación del mes de afrovenezolanidad2024.doc
Planificación del mes de afrovenezolanidad2024.doc
 

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