Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
POLIMORFISMO UNIDAD 4.
Programación Interactiva Fundamentos de Java. 2 Ejecución de un programa Para Java una clase ejecutable es aquella que es pública y tiene un método main()
Herencia en C#.
Fundamentos de la programación orientada a objetos
POLIMORFISMO "una interfaz, múltiples métodos".
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Herencia simple y multiple
Arquitectura CLARO-TECNOTREE
Introducción Abdelahad, Corina Natalia Abdelahad, Yanina Zoraida
Inner classes CAPITULO 8.
CURSO Programación Orientada a Objetos Parte 3 POLIMORFISMO
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Programación Orientada a Objetos en Java
Lenguaje de Programación II Manejo de Paquetes Corporación Universitaria del Caribe CECAR.
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Introducción a la Programación Orientada a Objetos Redefinición y Sobrecarga Dada la siguiente jerarquía de clases: Alfa Delta Beta.
Herencia e Interfaces.
Medio de tele-comunicación
Modificadores.
Herencia y Polimorfismo en JAVA
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Variables polimórficas (plantillas): definición, uso y aplicación
Técnicas avanzadas de programación Interfaces
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Diplomado Desarrollo de Aplicaciones en Internet
Programación Orientada a Objetos
Patrones de diseño DECORATOR Mario Rodríguez Martín
Herramientas de polimorfismo y herencia en C++
Programación avanzada en Java Miguel Ángel Corella 23 de Septiembre de 2005.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
PROGRAMACION ORIENTADA A OBJETOS POR OVER YESID BARRERA FERNANDEZ.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
CONCEPTOS.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
RELACIONES ENTRE CLASES M.C. YOLANDA MOYAO MARTINEZ.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR

Polimorfismo (Definición) Polymorphos métodos mismo nombre, diferente implementación objetos actúen de modo diferente en respuesta a una misma llamada. Código Reutilizable Fácil de adaptarlo Múltiples formas

 El polimorfismo va ligado a la herencia: objetos jerárquicamente relacionados responden en forma diferente al mismo mensaje

Polimorfismo VS Sobrecarga SobrecargaPolimorfismo se resuelve en tiempo de ejecución (dependiendo de la clase a la que pertenece el objeto que hace el llamado) se da entre clases distintas. se resuelve en tiempo de enlazado (cuando se esta construyendo el ejecutable) se da siempre en una sola clase

Método Abstracto es un método declarado en una clase para el cual esa clase no proporciona la implementación (el código). Sin código se declaran pero no se definen. No tendrá cuerpo y terminará en punto y coma

Clase abstracta Clase Abstracta Tiene al menos un método abstracto Declara la existencia de métodos pero no la implementació n Puede contener métodos no- abstractos pero al menos uno de los métodos debe serlo no se puede instanciar pero si se puede heredar Cuando una clase contiene un método abstracto tiene que declararse abstracta no pueden tener métodos privados (no se podrían implementar) ni tampoco estáticos. tiene que derivarse obligatoriamen te Una clase que extiende a una clase abstracta debe implementar los métodos abstractos o volverlos a declarar como abstractos

Implementación public abstract class figura { protected String nombre; protected int color; protected int grosorBorde; public String getNombre(){ return this.nombre; } public void setNombre(String n){ this.nombre=n; } public int getColor(){ return this.color; } public void setColor(int c){ this.color=c; } public int getGrosorBorde(){ return this.grosorBorde; } public void setGrosorBorde(int g){ this.grosorBorde=g; } public abstract void dibujar (); } public abstract class figura2D extends figura { public abstract int calcularArea (); public abstract int calcularPerimetro (); } public abstract class figura3D extends figura { public abstract int calcularVolumen (); }

Interface una interface es una clase abstracta pura, es decir una clase donde todos los métodos son abstractos Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes. La interface puede definirse public o sin modificador de acceso Todos los métodos que declara una interface son siempre public Una clase implementa una o más interfaces (separadas con comas ",") con la palabra reservada implements.

Ejemplo Interface  interface nombre_interface { tipo_retorno nombre_metodo ( lista_argumentos ) ;... } Por ejemplo:  interface InstrumentoMusical { void tocar(); void afinar(); String tipoInstrumento(); } sirven de guía para definir un determinado concepto (clase) y lo que debe hacer, pero sin desarrollar un mecanismo de solución

Implementación de una interface /** * Declaracion de la interfaz Modificacion A. Garcia-Beltran * Ultima revision: noviembre, 2007 */ public interface Modificacion { void incremento(int a); } /** * Declaracion de la clase Acumulador A. Garcia-Beltran * Ultima revision: noviembre, 2007 */ public class Acumulador implements Modificacion { private int valor; public Acumulador (int i) { valor = i; } public int daValor () { return valor; } public void incremento (int a) { valor = valor+a; } /** * Demostracion de la clase Acumulador A. Garcia-Beltran * Ultima revision: noviembre, 2007 */ public class PruebaAcumulador { public static void main (String [] args) { Acumulador p = new Acumulador(25); p.incremento(12); System.out.println(p.daValor()); }

Formas de Polimorfismo  Sobre-escritura de métodos:  Métodos de una subclase sobre escriben los métodos de una superclase  Sobre-escritura de métodos abstractos  Métodos de una subclase implementan los métodos abstractos de una superclase abstracta  Sobre-escritura de métodos a través de interface:  Métodos de una clase concreta implementan los métodos de la interface

Sobre-escritura de métodos  Subclase modifica los métodos que ha heredado de su padre  Nuevo método tiene diferente funcionalidad del método del padre pero con el MISMO  Nombre  Tipo de Retorno  Lista de argumentos (OJO: lo diferencia de la Sobrecarga) public class empleado { String nombre; int salario; public String getDetalle(){ return "Nombre: "+nombre+"\nSalario: "+salario; }} public class Jefe extends empleado { String depto; public String getDetalle(){ return “Nombre: “+nombre+”\nDepartamento: “+depto; } }

Llamada de métodos virtuales  ¿Cual de los getDetalle() se ejecutará? ¿El de la clase empleado o el de la clase Jefe? Empleado e=new Jefe; e.getDetalle();