2. Contenidos tema 3 – Introducción a Java Comenzamos Bases del lenguaje Java Programación Orientada a Objetos (OOP) Clases y objetos Creando clases Paquetes y java classpath Javabeans Herencia Clases abstractas e interfaces Polimorfismo Clases internas Excepciones Logging Networking 2
3. 3 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
4. 4 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
5. 5 Qué es el polimorfismo y por qué Generalmente, el polimorfismo es la habilidad de tomar diferentes formas Polimorfismo en java: Habilidad de una variable por referencia de cambiar su comportamiento en función de qué instancia de objeto posee Esto permite tratar de la misma manera, como objetos de la superclase, a múltiples objetos de la subclase, seleccionando en cada caso los métodos apropiados (de cada subclase por ejemplo)
6. 6 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
7. 7 Ejemplos de polimorfismo Por ejemplo, dada una clase Vehiculo, la característica de polimorfismo habilita al programador para definir métodos en sus subclases (por ejemplo: Coche, Camion y Moto). No importa qué tipo de Vehiculo sea ya que si llamamos al método getNumeroRuedas() llamará al propio de cada subclase, pero el objeto no deja de ser Vehículo también.
8. 8 Ejemplos de polimorfismo Dada la clase padre Person y las subclases Student, y añadimos otra subclase llamada Employee
9. 9 Ejemplos de polimorfismo En Java podemos crear una referencia que es de tipo superclase, Person, a un objeto de su subclase Student public static main( String[] args ) { Student studentObject = new Student(); Employee employeeObject = new Employee(); Person ref = studentObject; // Person reference points // to a Student object // Calling getName() of the Student object instance String name = ref.getName();
10. 10 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
11. 11 3 formas de polimorfismo Son métodos que no están implementados (body) Para crear un método abstracto sólo es necesaria la declaración del método sin el cuerpo (body) y usando la palabra reservada abstract // Note that there is no body public abstract void someMethod();
12. 12 3 formas de polimorfismo Ahora suponemos que tenemos un método llamado getName() en la superclase Person, y lo sobre-escribimos en ambas subclases (Student y Employee) public class Student { public String getName(){ System.out.println(“Student Name:” + name); return name; } } public class Employee { public String getName(){ System.out.println(“Employee Name:” + name); return name; } }
13. 13 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
14. 14 Polimorfismo: ejemplo 1 Volviendo a nuestro método principal, cuando tratamos de llamar al método getName() del objeto Student Ahora, si asignamos la referencia a un objeto Employee, el método getName() de Employee será llamado.
15. 15 Polimorfismo: ejemplo 1 public static main( String[] args ) { Student studentObject = new Student(); Employee employeeObject = new Employee(); Person ref = studentObject; //Person ref. points to a // Student object // getName() method of Student class is called String temp= ref.getName(); System.out.println( temp ); ref = employeeObject; //Person ref. points to an // Employee object //getName() method of Employee class is called String temp = ref.getName(); System.out.println( temp ); }
16. 16 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
17. 17 Polimorfismo: ejemplo 2 Otro ejemplo que ilustra el polimorfismo es cuando tratamos de pasar la referencia a los métodos como parámetro Suponemos que tenemos un método static llamado printInformation, el cual recibe como parámetro la referencia a un objeto Person public static printInformation( Person p ){ // It will call getName() method of the // actual object instance that is passed p.getName(); }
18. 18 Polimorfismo: ejemplo 2 Podemos pasar una referencia de tipo Employee y un tipo Student al método printInformation, ya que es una subclase de Person. public static main( String[] args ){ Student studentObject = new Student(); Employee employeeObject = new Employee(); printInformation( studentObject ); printInformation( employeeObject ); }
19. 19 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
20. 20 Beneficios del polimorfismo Simplicidad: Si necesitas escribir código que trata con una familia de tipos, el código puede ignorar los detalles específicos de los tipos e interactuar con el tipo base de la familia (jerarquía). Aunque el código piense que está actuando con un objeto de tipo superclase, puede estar operando con un objeto subclase Todo esto hace tu código más fácil de escribir y mucho más fácil de entender por los demás
21. 21 Beneficios del polimorfismo Extensibilidad: Otras subclases pueden ser añadidas después a la familia de tipos, y sus objetos pueden también seguir trabajando con el código existente
22. 22 Contenidos de este tema Polimorfismo Qué es el polimorfismo y por qué Ejemplos de polimorfismo 3 formas de polimorfismo Polimorfismo: ejemplo 1 Polimorfismo: ejemplo 2 Beneficios del polimorfismo 3 formas de polimorfismo
23. 23 3 formas de polimorfismo Sobre-escritura de métodos Métodos de una subclase sobreescriben los métodos de la superclase Sobre-escritura de métodos (impl) abstractos Métodos de la subclase implementan los métodos abstractos de la superclase abstracta (clase abstracta) Sobre-escritura de métodos (impl) a través de interface Métodos de una clase concreta implementan los métodos de la interface
24. Es importante que recordeis… “Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado” Adelante!!! Jesús Muñoz jesus@iluego.com