📅  最后修改于: 2023-12-03 15:18:37.212000             🧑  作者: Mango
El polimorfismo es un concepto clave en la programación orientada a objetos y permite que una clase pueda implementar una misma interfaz de diversas maneras. En Java, esto se logra a través de la herencia y la sobrecarga de métodos.
Imaginemos que queremos modelar la figura de un animal. Podríamos definir una clase Animal
con los siguientes atributos y métodos:
public abstract class Animal {
protected String nombre;
public Animal(String nombre) {
this.nombre = nombre;
}
public abstract void emitirSonido();
}
Esta clase es abstracta, lo que significa que no podemos crear objetos directamente de ella. Sin embargo, podemos definir subclases que extiendan su comportamiento. Por ejemplo, podemos crear la clase Perro
de la siguiente manera:
public class Perro extends Animal {
public Perro(String nombre) {
super(nombre);
}
@Override
public void emitirSonido() {
System.out.println(nombre + " dice: ¡guau, guau!");
}
}
En esta clase, estamos extendiendo la clase Animal
y sobreescribiendo su método emitirSonido()
. Ahora, podemos crear un objeto Perro
y llamar a su método emitirSonido()
:
Perro p = new Perro("Fido");
p.emitirSonido(); // Fido dice: ¡guau, guau!
Este es un ejemplo básico de polimorfismo en Java. La clase Perro
ha implementado la interfaz de su clase padre, Animal
, de manera diferente a como podría hacerlo una hipotética clase Gato
.
El polimorfismo es una característica fundamental de la programación orientada a objetos y permite que las clases puedan implementar una misma interfaz de diversas maneras. En Java, esto se logra a través de la herencia y la sobrecarga de métodos. En el ejemplo que hemos visto, la clase Perro
ha implementado el método emitirSonido()
de manera diferente a cómo lo haría su clase padre, Animal
.