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 clase2. 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 clase3. 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 clasePuntos 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
IdProfesorque no existe en la clase base.