Universidad de Cantabria

Documentos relacionados
Universidad de Cantabria

Derechos de Acceso: COMPOSICION

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Programación Orientada a Objetos en C#.NET CAPÍTULO 7 POLIMORFISMO. Ing. Bruno López Takeyas, M.C.

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Conceptos más avanzados de Programación Orientada a Objetos

Programación Orientada a Objetos (POO)

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

La Herencia: Teoría (1)

Diseño Basado en Componentes. Curso 2008 / 09

Packages, Classpath y

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Aplicaciones de Escritorio

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Práctica 2: Java Remote Method Invocation (RMI)

Introduciendo datos desde el

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Arquitecturas cliente/servidor

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Tema 7: Polimorfismo. Índice

Herencia. Hay clases que comparten gran parte de sus características.

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Universidad Salesiana de Bolivia

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

Introducción a la Orientación a Objetos

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

Guía - Taller # 2 (JAVA)

Clases Abstractas e Interfaces

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Modelo de Objetos Distribuidos

Tema 4. Excepciones en Java

Capítulo 16. Diagrama de Clases UML

Súper clases y subclases

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Introducción Programación Modular y a Métodos: Consideremos el siguiente ejercicio:

Universidad de Cantabria

Programación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización

Tema: Introducción al IDE de Microsoft Visual C#.

Introducción. Curso de Middleware. Práctica 6. 1 de 9

Federico Peinado

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Principios de Computadoras II

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACION ORIENTADA A OBJETOS EN C++

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

Polimorfismo. Métodos virtuales

Curso Informática Lección 2. Introducción a la programación en Java

Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos

POLIMORFISMO. import java.util.*; class Instrumento { public void tocar() { System.out.println("Instrumento.tocar()"); public String tipo() {

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Algoritmos de Ordenación

Programación Orientada a Objetos. Sesión 4: Herencia

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Programación orientada a objetos en PHP. Lic. Nancy Michelle Torres Villanueva

1 HILOS (THREADS) EN JAVA

Tema: Clases y Objetos en C#. Parte II.

Construcciones del Lenguaje Java

EXAMEN PARCIAL 23 de Octubre de 2015 Programación I. Grado en Matemáticas e Informática ETSIINF UPM

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Tema: Funciones, Procedimientos y Recursividad en C#.

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN.

Universidad ORT - Arquitectura de Software. Requisitos

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Destrucción de objetos (I)

Programación Orientada a Objetos en Java

Benemérita Universidad Autónoma del Estado de Puebla

15. Parámetros o argumentos

Ruby On Rails para Programadores Java

PROGRAMACIÓN CON ACCESO A DATOS

Programación Orientada a Objetos Curso 2015/2016. Ejercicios sobre colecciones y Java 8

Práctica 5: Common Object Request Broker Architecture CORBA

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Conceptos de Programación Orientada a Objetos

Bloque práctico 2: Java

Introducción a Java III. Prof. MSc. Pedro Shiguihara

Programación orientada a objetos

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

1. Qué tipos de relación hay entre las siguientes clases?

Tema 5 Corrección y Robustez Excepciones en Java

Tema 3. Programación orientada a objetos en Java (Parte 1)

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Transcripción:

Polimorfismo Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es

Objetivos Comprender el mecanismo del polimorfismo Aprender a utilizar el polimorfismo en clases Java 2

Índice Qué es polimorfismo? Beneficios del Polimorfismo Ejemplos Java 3

Qué es polimorfismo? Polimorfismo se refiere a la habilidad para aparecer en varias formas Polimorfismo en programas Java significa: La habilidad de una variable referencia para cambiar su comportamiento de acuerdo a la instancia del objeto que contiene Esto permite que múltiples objetos de diferentes subclases sea tratados como objetos de una superclase única, mientras que automáticamente se selecciona los métodos apropiados a aplicar a un objeto en particular basado en la subclase a la que pertenece Java 4

Ejemplo de polimorfismo Por ejemplo, dada una clase base shape, el polimorfismo permite al programador definir diferentes métodos area para cualquier número de clases derivadas, tales, como circles, rectangles, y triangles El método area de circle, revtangle y triangle se implementa de manera diferente No importa qué forma tiene un objeto, aplicándole el método area devolverá el resultado correcto Java 5

Ejemplo 1: polimorfismo Dada la clase padre Person y la clase hija Student, se añade otra subclase Person que es Employee La gráfica de la jerarquía de clases es: Person Student Employee Java 6

Ejemplo 1: polimorfismo Se puede crear una referencia que es del tipo de la superclase, Person, hacia un objeto de su subclase Student public static main( String[] args ) { Student studentobject = new Student(); Employee employeeobject = new Employee(); Person ref = studentobject; //referencia Person // al objeto Student // Llamada de getname() de la instancia de objeto Student String name = ref.getname(); Java 7

Ejemplo 1: polimorfismo Supongamos ahora que hay un método getname en la superclase Person y que este método es sobrescrito en las subclases Student y Employee public class Student { public String getname() { System.out.println( Nombre estudiante: + name); return name; public class Employee { public String getname() { System.out.println( Nombre empleado: + name); return name; Java 8

Ejemplo 1: polimorfismo Volviendo al método main, cuando se invoca el método getname de la referencia Person ref, el método getname del objeto Student será llamado Si se asigna ref a un objeto Employee, el método getname de Employee será llamado Java 9

Ejemplo 1: polimorfismo public static main (String[] args) { Student studentobject = new Student(); Employee employeeobject = new Employee(); //ref apunta a un objeto Student Person ref = studentobject; //metodo getname() de la clase Student es invocado String temp= ref.getname(); System.out.println(temp); //ref apunta ahora a un objeto Employee ref = employeeobject; //metodo getname() de la clase Employee es invocado String temp = ref.getname(); System.out.println(temp); Java 10

Ejemplo 2: polimorfismo Otro ejemplo que ilustra el polimorfismo es cuando se tarta de pasar una referencia a métodos como parámetros Supongamos que tenemos un método estático printinformation que recibe una referencia Person como parámetro public static printinformation ( Person p ){ // Se invocara el metodo getname() de la // instancia actual del objeto que es pasado p.getname(); Java 11

Ejemplo 2: polimorfismo Si se pasa una referencia de tipo Employee y tipo Student al método printinformation en tanto que es una subclase de la clase Person public static main( String[] args ){ Student studentobject = new Student(); Employee employeeobject = new Employee(); printinformation( studentobject ); printinformation( employeeobject ); Java 12

Beneficios del Polimorfismo Simplicidad Si se necesita escribir código que trata con una familia de subtipos, el código puede ignorar los detalles específicos de tipo y sólo interactuar con el tipo base de la familia Aun cuando el código piense que está usando un objeto de la clase base, la clase del objeto podría ser la clase base o cualquiera de sus subclases Extensibilidad Se pueden añadir subclases posteriormente a la familia de tipos, y los objetos de estas nuevas subclases podría trabajar con el código existente Java 13

Tres formas de polimorfismo en un programa Java Overriding de método Métodos de una subclase sobreescriben los métodos de una superclase Overriding de método (implementación) de los métodos abstractos Métodos de una superclase implementa los métodos abstractos de una clase abstracta Overriding de método (implementación) a través de interface Métodos de una superclase implementa los métodos abstractos de la interface Java 14