Polimorfismo en java

Páginas: 8 (1867 palabras) Publicado: 17 de octubre de 2014
Polimorfismo en Java (Parte I), con ejemplos
El proyecto de este post lo puedes descargar pulsando AQUI.

El Polimorfismo es uno de los 4 pilares de la programación orientada a objetos (POO) junto con la Abstracción, Encapsulación y Herencia. Para entender que es el polimorfismo es muy importante que tengáis bastante claro el concepto de la Herencia, por tanto recomendamos que veáis la entradaen la que hablamos de la Herencia: Herencia en Java, con ejemplos.

Para empezar con esta entrada, se ha de decir que el término “Polimorfismo” es una palabra de origen griego que significa “muchas formas”. Este termino se utiliza en la POO para “referirse a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos“. Como esta definición quizás seaalgo difícil de entender, vamos a explicarla con el ejemplo que pusimos en la entrada de la herencia en la que queríamos simular el comportamiento que tendrían los diferentes integrantes de la selección española de fútbol; tanto los Futbolistas como el cuerpo técnico (Entrenadores, Masajistas, etc…). Para este ejemplo nos vamos a basar en el siguiente diagrama de clases:

PolimorfismoFutbol-diagNOTA: en este diagrama y en adelante no vamos a poner los constructores y métodos getter y setter con el fin de que el diagrama nos quede grande e “intendible” aunque en un buen diagrama de clases deberían aparecer para respetar el principio de encapsulación de la POO


En este ejemplo vamos a tener una clase padre (SelecciónFutbol) en la que tendremos los atributos y métodos comunes atodos los integrantes que forman la selección española de fútbol (Futbolistas, Entrenadores, Masajistas, etc.) y en ella se van a implementar los métodos del comportamiento “genérico” que deben de tener todos los integrantes de la selección. Como ya dijimos en la entrada de la herencia, la herencia no es más que sacar “factor común” del código que escribimos, así que los atributos y métodos de laclase SeleccionFutbol los tendrán también los objetos de las clases Futbolista, Entrenador y Masajista. Antes de seguir vamos a mostrar el código de la clase “SeleccionFutbol” para ver algunas peculiaridades:

public abstract class SeleccionFutbol {

protected int id;
protected String nombre;
protected String apellidos;
protected int edad;

// constructores, getter y setter

publicvoid viajar() {
System.out.println("Viajar (Clase Padre)");
}

public void concentrarse() {
System.out.println("Concentrarse (Clase Padre)");
}

// IMPORTANTE -> METODO ABSTRACTO => no se implementa en la clase abstracta pero si en la clases hijas
public abstract void entrenamiento();

public void partidoFutbol() {
System.out.println("Asiste al Partido de Fútbol(Clase Padre)");
}
}
Lo primero que nos debe de llamar la atención al ver este código es que utilizamos dos veces la palabra reservada “abstract“. Esta palabra nos indica que la clase “SeleccionFutbol” es una clase abstracta y las clases abstractas no se pueden instanciar, por tanto nunca podremos hacer un “new SeleccionFutbol()”. Otra cosa que vemos es que también utilizamos la palabrareservada abstract en un método (en el método entrenamiento). Esto quiere decir que todas las clases hijas de la clase “SeleccionFubol” tienen que tener implementado ese método obligatoriamente. Por tanto con esto que se acaba de contar y diciendo que la palabra “Polimorfismo” significa “muchas formas”, podéis deducir que la clase “SeleccionFutbol” es una clase que puede adoptar diferentes formas y eneste ejemplo puede adoptar las formas de “Futbolista”, “Entrenador” y “Masajista”.

Ejm_polimorfismo_jarroba

Como vemos un “Entrenador”, un “Futbolista” y un “Masajista” pertenecen a la misma clase padre y por eso se instancian diciendo que es una SeleccionFutbol y son nuevos objetos de las clases hijas. Por otro lado vemos que no se pueden crear objetos de una clase abstracta, por tanto el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • herencia y polimorfismo en java
  • Ensayo De Polimorfismo Java
  • polimorfismo en java
  • Polimorfismo-Java
  • Java Herencia Y Polimorfismo
  • Herencia y Polimorfismo en Java
  • Herencia y Polimorfismo En Java
  • POLIMORFISMO

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS