10 Polimorfismo

49,697 views

Published on

FactoriaJava.com - Desarrollo Java

Curso Desarrollo y Gestión de Aplicaciones Web con Tecnología Java

Tema 03 - Módulo 10 - Polimorfismo

Published in: Technology
2 Comments
29 Likes
Statistics
Notes
  • puedes enviarme a mi email
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • MUY BUENA INFORMACION
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
49,697
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
0
Comments
2
Likes
29
Embeds 0
No embeds

No notes for slide

10 Polimorfismo

  1. 1. MÓDULO 3<br />INTRODUCCIÓN A JAVA<br />3.10 POLIMORFISMO<br />40 HORAS<br />Jesús Muñoz<br />jesus@iluego.com<br />
  2. 2. Contenidos tema 3 – Introducción a Java<br />Comenzamos<br />Bases del lenguaje Java<br />Programación Orientada a Objetos (OOP)<br />Clases y objetos<br />Creando clases<br />Paquetes y java classpath<br />Javabeans<br />Herencia<br />Clases abstractas e interfaces<br />Polimorfismo<br />Clases internas<br />Excepciones<br />Logging<br />Networking<br />2<br />
  3. 3. 3<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  4. 4. 4<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  5. 5. 5<br />Qué es el polimorfismo y por qué<br />Generalmente, el polimorfismo es la habilidad de tomar diferentes formas<br />Polimorfismo en java:<br />Habilidad de una variable por referencia de cambiar su comportamiento en función de qué instancia de objeto posee<br />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)<br />
  6. 6. 6<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  7. 7. 7<br />Ejemplos de polimorfismo<br />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).<br />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.<br />
  8. 8. 8<br />Ejemplos de polimorfismo<br />Dada la clase padre Person y las subclases Student, y añadimos otra subclase llamada Employee<br />
  9. 9. 9<br />Ejemplos de polimorfismo<br />En Java podemos crear una referencia que es de tipo superclase, Person, a un objeto de su subclase Student<br />public static main( String[] args ) {<br />Student studentObject = new Student();<br />Employee employeeObject = new Employee();<br />Person ref = studentObject; // Person reference points<br />// to a Student object<br />// Calling getName() of the Student object instance<br />String name = ref.getName();<br />
  10. 10. 10<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  11. 11. 11<br />3 formas de polimorfismo<br />Son métodos que no están implementados (body)<br />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<br />// Note that there is no body<br />public abstract void someMethod();<br />
  12. 12. 12<br />3 formas de polimorfismo<br />Ahora suponemos que tenemos un método llamado getName() en la superclase Person, y lo sobre-escribimos en ambas subclases (Student y Employee)<br />public class Student {<br />public String getName(){<br />System.out.println(“Student Name:” + name);<br />return name;<br />}<br />}<br />public class Employee {<br />public String getName(){<br />System.out.println(“Employee Name:” + name);<br />return name;<br />}<br />}<br />
  13. 13. 13<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  14. 14. 14<br />Polimorfismo: ejemplo 1<br />Volviendo a nuestro método principal, cuando tratamos de llamar al método getName() del objeto Student<br />Ahora, si asignamos la referencia a un objeto Employee, el método getName() de Employee será llamado.<br />
  15. 15. 15<br />Polimorfismo: ejemplo 1<br />public static main( String[] args ) {<br />Student studentObject = new Student();<br />Employee employeeObject = new Employee();<br />Person ref = studentObject; //Person ref. points to a<br />// Student object<br />// getName() method of Student class is called<br />String temp= ref.getName();<br />System.out.println( temp );<br />ref = employeeObject; //Person ref. points to an<br />// Employee object<br />//getName() method of Employee class is called<br />String temp = ref.getName();<br />System.out.println( temp );<br />}<br />
  16. 16. 16<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  17. 17. 17<br />Polimorfismo: ejemplo 2<br />Otro ejemplo que ilustra el polimorfismo es cuando tratamos de pasar la referencia a los métodos como parámetro<br />Suponemos que tenemos un método static llamado printInformation, el cual recibe como parámetro la referencia a un objeto Person<br />public static printInformation( Person p ){<br />// It will call getName() method of the<br />// actual object instance that is passed<br />p.getName();<br />}<br />
  18. 18. 18<br />Polimorfismo: ejemplo 2<br />Podemos pasar una referencia de tipo Employee y un tipo Student al método printInformation, ya que es una subclase de Person.<br />public static main( String[] args ){<br />Student studentObject = new Student();<br />Employee employeeObject = new Employee();<br />printInformation( studentObject );<br />printInformation( employeeObject );<br />}<br />
  19. 19. 19<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  20. 20. 20<br />Beneficios del polimorfismo<br />Simplicidad:<br />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).<br />Aunque el código piense que está actuando con un objeto de tipo superclase, puede estar operando con un objeto subclase<br />Todo esto hace tu código más fácil de escribir y mucho más fácil de entender por los demás<br />
  21. 21. 21<br />Beneficios del polimorfismo<br />Extensibilidad:<br />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<br />
  22. 22. 22<br />Contenidos de este tema<br />Polimorfismo<br />Qué es el polimorfismo y por qué<br />Ejemplos de polimorfismo<br />3 formas de polimorfismo<br />Polimorfismo: ejemplo 1<br />Polimorfismo: ejemplo 2<br />Beneficios del polimorfismo<br />3 formas de polimorfismo<br />
  23. 23. 23<br />3 formas de polimorfismo<br />Sobre-escritura de métodos<br />Métodos de una subclase sobreescriben los métodos de la superclase<br />Sobre-escritura de métodos (impl) abstractos<br />Métodos de la subclase implementan los métodos abstractos de la superclase abstracta (clase abstracta)<br />Sobre-escritura de métodos (impl) a través de interface<br />Métodos de una clase concreta implementan los métodos de la interface<br />
  24. 24. Es importante que recordeis…<br />“Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado”<br />Adelante!!!<br />Jesús Muñoz<br />jesus@iluego.com<br />

×