25 julio, 2019
Es un tema indispensable para todo programador con experiencia, en este caso en el lenguaje JAVA, ejemplos de código con Polimorfismo en Java y cómo usarlo
Suscríbete a nuestro canal en Youtube
SuscríbirsePues en este post veremos ¿Cómo usar polimorfismo en Java? y cómo nos puede servir en el desarrollo de aplicaciones con este lenguaje de programación?
El Polimorfismo es uno de los 4 pilares de la programación orientada a objetos 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 en 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 término 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 algo 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…).
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)");
}
}
Clases que heredan los metodos/ procedimientos de la clase anterior:
public class Futbolista extends SeleccionFutbol {
private int dorsal;
private String demarcacion;
// constructor, getter y setter
@Override
public void entrenamiento() {
System.out.println("Realiza un entrenamiento (Clase Futbolista)");
}
@Override
public void partidoFutbol() {
System.out.println("Juega un Partido (Clase Futbolista)");
}
public void entrevista() {
System.out.println("Da una Entrevista");
}
}
public class Entrenador extends SeleccionFutbol {
private int idFederacion;
// constructor, getter y setter
@Override
public void entrenamiento() {
System.out.println("Dirige un entrenamiento (Clase Entrenador)");
}
@Override
public void partidoFutbol() {
System.out.println("Dirige un Partido (Clase Entrenador)");
}
public void planificarEntrenamiento() {
System.out.println("Planificar un Entrenamiento");
}
}
public class Masajista extends SeleccionFutbol {
private String titulacion;
private int aniosExperiencia;
// constructor, getter y setter
@Override
public void entrenamiento() {
System.out.println("Da asistencia en el entrenamiento (Clase Masajista)");
}
public void darMasaje() {
System.out.println("Da un Masaje");
}
}
Como puedes ver tenemos una clase general la encargada de juntar los métodos o atributos en común, luego extendemos para cada clase que la necesita así ya no declararía y se ahorraría líneas de código y mejora tu habilidad como programador.
Leido 8521 veces
© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2024