Implementación de Herencia en Java: Ejemplo Práctico con Clases Persona y Profesor

Clasificado en Informática

Escrito el en español con un tamaño de 3,39 KB

Ejemplo de Herencia en Java: Clases Persona y Profesor

En el ámbito de la Programación Orientada a Objetos (POO), la herencia es un pilar fundamental que permite la reutilización de código. A continuación, se presenta un ejemplo detallado utilizando las clases Persona y Profesor.

1. Definición de la Superclase: Clase Persona

La clase Persona actúa como la superclase, definiendo los atributos generales que cualquier individuo posee.

// Código de la clase Persona ejemplo aprenderaprogramar.com
public class Persona {
    private String nombre;
    private String apellidos;
    private int edad;

    // Constructor
    public Persona (String nombre, String apellidos, int edad) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
    }

    // Métodos
    public String getNombre () { return nombre; }
    public String getApellidos () { return apellidos; }
    public int getEdad () { return edad; }
} // Cierre de la clase

2. Definición de la Subclase: Clase Profesor

La clase Profesor es una subclase que extiende de Persona mediante la palabra clave extends, añadiendo funcionalidades específicas.

// Código de la clase profesor, subclase de la clase Persona ejemplo aprenderaprogramar.com
public class Profesor extends Persona {
    // Campos específicos de la subclase.
    private String IdProfesor;

    // Constructor de la subclase: incluimos como parámetros al menos los del constructor de la superclase
    public Profesor (String nombre, String apellidos, int edad) {
        super(nombre, apellidos, edad);
        IdProfesor = "Unknown";
    } // Cierre del constructor

    // Métodos específicos de la subclase
    public void setIdProfesor (String IdProfesor) { this.IdProfesor = IdProfesor; }
    public String getIdProfesor () { return IdProfesor; }

    public void mostrarNombreApellidosYCarnet() {
        // nombre = "Paco"; Si tratáramos de acceder directamente a un campo privado de la superclase, salta un error
        // Sí podemos acceder a variables de instancia a través de los métodos de acceso públicos de la superclase
        System.out.println ("Profesor de nombre: " + getNombre() + " " + getApellidos() +
        " con Id de profesor: " + getIdProfesor() );
    }
} // Cierre de la clase

3. Ejecución y Pruebas: Clase TestHerencia1

Para validar la jerarquía de clases y el funcionamiento de la herencia, se utiliza la siguiente clase de prueba.

// Código de test aprenderaprogramar.com
public class TestHerencia1 {
    public static void main (String [ ] Args) {
        Profesor profesor1 = new Profesor ("Juan", "Hernández García", 33);
        profesor1.setIdProfesor("Prof 22-387-11");
        profesor1.mostrarNombreApellidosYCarnet();
    }
} // Cierre de la clase

Puntos Clave del Ejemplo

  • Uso de super: Permite invocar al constructor de la superclase Persona.
  • Encapsulamiento: Los campos privados de la superclase no son accesibles directamente, por lo que se emplean métodos getter.
  • Especialización: La clase Profesor añade el atributo IdProfesor que no existe en la clase base.

Entradas relacionadas: