La herencia y el polimorfismo son conceptos clave de la programación orientada a objetos (POO) en Java. En este tutorial, exploraremos estos conceptos y cómo utilizarlos para lograr una programación orientada a objetos eficaz.
Herencia en Java
La herencia es un mecanismo en POO que permite a una clase heredar atributos y métodos de otra clase. Una clase que hereda se llama subclase, y la clase de la que hereda se llama superclase.
Sintaxis de Herencia
class Subclase extends Superclase {
// Código de la subclase
}
Ejemplo de Herencia
class Animal {
void sonido() {
System.out.println("Haciendo un sonido genérico");
}
}
class Gato extends Animal {
void sonido() {
System.out.println("Miau");
}
}
public class HerenciaEjemplo {
public static void main(String[] args) {
Gato miGato = new Gato();
miGato.sonido(); // Llama al método sonido() de la subclase Gato
}
}
En este ejemplo, la clase `Gato` hereda de la clase `Animal` y redefine el método `sonido()`. Al llamar al método `sonido()` en un objeto de tipo `Gato`, se ejecuta la versión definida en la subclase `Gato`.
Polimorfismo en Java
El polimorfismo permite que un objeto pueda comportarse de múltiples formas. En Java, esto se logra mediante la implementación de métodos con el mismo nombre en diferentes clases.
Ejemplo de Polimorfismo
class Figura {
void dibujar() {
System.out.println("Dibujando una figura genérica");
}
}
class Circulo extends Figura {
void dibujar() {
System.out.println("Dibujando un círculo");
}
}
class Cuadrado extends Figura {
void dibujar() {
System.out.println("Dibujando un cuadrado");
}
}
public class PolimorfismoEjemplo {
public static void main(String[] args) {
Figura figura1 = new Circulo();
figura1.dibujar(); // Llama al método dibujar() del objeto Circulo
Figura figura2 = new Cuadrado();
figura2.dibujar(); // Llama al método dibujar() del objeto Cuadrado
}
}
En este ejemplo, se crea un polimorfismo utilizando la herencia. El método `dibujar()` se define en la clase `Figura` y se sobrescribe en las clases `Circulo` y `Cuadrado`. Dependiendo del tipo de objeto, se ejecuta el método correspondiente.
La herencia y el polimorfismo son conceptos poderosos que permiten la reutilización del código y una estructura de programa más flexible. ¡Sigue practicando y experimentando con estos conceptos para mejorar tus habilidades en POO en Java!