Logo Java

En Java, el polimorfismo es una característica que permite que un objeto pueda tener diferentes formas o comportamientos. Se basa en la capacidad de una clase de ser utilizada como si fuera otra clase relacionada con ella.

Pregunta: En Java que es POLIMORFISMO?

El polimorfismo en Java se puede lograr mediante dos mecanismos principales: la herencia y la interfaz. La herencia permite que una clase herede propiedades y métodos de una clase padre, y luego pueda sobrescribir o extender estos métodos para crear una funcionalidad específica de la clase hija. La interfaz, por otro lado, define un conjunto de métodos que una clase debe implementar para cumplir con una especificación.

Una vez que una clase ha heredado de otra clase o ha implementado una interfaz, puede ser utilizada de forma polimórfica. Esto significa que una variable de tipo de clase padre o interfaz puede referirse a un objeto de la clase hija o de una clase que implemente esa interfaz. Esto permite que el mismo método o acción pueda ser invocado en diferentes objetos, pero produciendo resultados diferentes dependiendo de la clase del objeto que se esté utilizando.

Ejemplo de polimorfismo en java aplicado en la vida real

Un ejemplo de polimorfismo en Java aplicado en la vida real podría ser el uso de una interfaz común para diferentes clases de vehículos en un sistema de transporte público. Supongamos que tenemos una interfaz «TransportePublico» con un método «viajar()» que define el comportamiento de un vehículo de transporte público genérico.

Luego, podemos tener diferentes clases que implementan esta interfaz, como «Autobus», «Tren», «Metro» y «Tranvía». Cada una de estas clases tiene su propia implementación del método «viajar()», que puede ser específica para ese tipo de vehículo.

Cuando se utiliza el sistema de transporte público, se pueden utilizar variables del tipo de la interfaz «TransportePublico» para referirse a cualquiera de estas clases de vehículos.

Por ejemplo, podemos tener una variable «miTransporte» que puede ser asignada a un objeto de tipo «Autobus», «Tren», «Metro» o «Tranvía»; dependiendo del vehículo que necesitemos para nuestro viaje.

Luego, podemos invocar el método «viajar()» en la variable «miTransporte»; y el comportamiento específico del método se ejecutará dependiendo de la clase real del objeto asignado a esa variable. Por ejemplo, si «miTransporte» se refiere a un objeto «Autobus», se ejecutará la implementación del método «viajar()» definida en la clase «Autobus».

En este ejemplo, el polimorfismo permite que diferentes objetos de diferentes clases puedan ser tratados de manera similar; lo que simplifica el código y lo hace más fácil de mantener y extender en el futuro.

Ejemplo en Java de polimorfismo

public class Animal {
public void hacerSonido() {
System.out.println("Un animal hace un sonido");
}
}

public class Perro extends Animal {
@Override
public void hacerSonido() {
System.out.println("El perro ladra");
}
}

public class Gato extends Animal {
@Override
public void hacerSonido() {
System.out.println("El gato maulla");
}
}

public class PolimorfismoEjemplo {
public static void main(String[] args) {
Animal miAnimal = new Animal();
Animal miPerro = new Perro();
Animal miGato = new Gato();

miAnimal.hacerSonido(); // Salida: "Un animal hace un sonido"
miPerro.hacerSonido(); // Salida: "El perro ladra"
miGato.hacerSonido(); // Salida: "El gato maulla"
}
}

Análisis del código anterior

En este ejemplo, creamos una clase base «Animal» que tiene un método «hacerSonido()» que imprime un mensaje genérico. Luego, creamos dos clases derivadas «Perro» y «Gato» que sobrescriben el método «hacerSonido()» con su propio comportamiento específico.

En el método «main()», creamos tres objetos de tipo «Animal», «Perro» y «Gato», y los asignamos a variables de tipo «Animal». Luego, llamamos al método «hacerSonido()» en cada uno de estos objetos, lo que produce diferentes resultados dependiendo de la clase real del objeto.

Este es un ejemplo sencillo pero efectivo de cómo el polimorfismo puede utilizarse para permitir que diferentes objetos de diferentes clases se traten de manera similar y se ejecuten diferentes comportamientos según su tipo real.

💚 Recuerda que, si deseas aprender más de este lenguaje de programación, puedes acceder al curso gratuito de Java, donde te explicaré paso a paso ejercicios prácticos en este lenguaje.

👉 CURSO JAVA CON INTERFAZ GRÁFICA.

👉 CURSO JAVA POR CONSOLA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

×