POLIMORFISMO EN JAVA PARTE I

Páginas: 8 (1865 palabras) Publicado: 23 de junio de 2015
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 entrada enla 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 sea algodifí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:

NOTA: en este diagrama y enadelante 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 a todos los integrantes que forman laselecció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 la clase SeleccionFutbol los tendrán tambiénlos 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

public void 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 laatenció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 palabra reservada abstract en un método (en el método entrenamiento). Estoquiere 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 en este ejemplo puede adoptar las formas de “Futbolista”,“Entrenador” y “Masajista”.

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 crearnos el objeto “casillas” nos da un error.
Y ahora si hemos dicho que hemos definido en la...
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
  • Parte I
  • PARTE I
  • PARTE I
  • polimorfismo en java
  • Parte I
  • I Unidad I Parte

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS