Saltar la navegación

Herencia

Herencia

La herencia permite que una clase (subclase o clase derivada) herede las propiedades y comportamientos de otra clase (superclase o clase base). Esto fomenta la reutilización de código y establece relaciones jerárquicas entre las clases.

Con la herencia, una subclase puede agregar o modificar funcionalidades de la clase base.

  • Superclase y subclase:
    • La clase base o superclase contiene los atributos y métodos que serán heredados, mientras que la subclase puede extender la funcionalidad agregando nuevos atributos o métodos, o sobrescribiendo los métodos heredados.
  • Palabra clave en Java:
    • En Java, la herencia se logra utilizando la palabra clave extends.

 

Ejemplo de herencia con superclase Personaje - Diagrama UML de clase

Ejemplo de superclase y herencias en Java ⚔️🔮

// Clase Personaje
public class Personaje {
    // Atributos privados
    private String nombre;
    private int salud;

    // Constructor
    public Personaje(String nombre, int salud) {
        this.nombre = nombre;
        this.salud = salud;
    }

    // Método atacar
    public void atacar() {
        System.out.println(nombre + " está atacando.");
    }

    // Getters y setters para los atributos (opcional)
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getSalud() {
        return salud;
    }

    public void setSalud(int salud) {
        this.salud = salud;
    }
}

// Clase Guerrero que hereda de Personaje
public class Guerrero extends Personaje {
    public Guerrero(String nombre, int salud) {
        super(nombre, salud);
    }

    // Método específico de Guerrero
    public void usarEspada() {
        System.out.println(getNombre() + " está usando una espada.");
    }
}

// Clase Mago que hereda de Personaje
public class Mago extends Personaje {
    public Mago(String nombre, int salud) {
        super(nombre, salud);
    }

    // Método específico de Mago
    public void lanzarHechizo() {
        System.out.println(getNombre() + " está lanzando un hechizo.");
    }
}

Creado con eXeLearning (Ventana nueva)