Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Herencia

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

40 minutos

Alumnos y profesores, todos personas

En el instituto hay alumnos y hay profesores. Los dos tienen un nombre y los dos saludan.

Pero el alumno tiene un curso, y el profesor tiene una asignatura.

Sería pesado escribir el nombre y el saludo dos veces. Java te deja escribir lo común una vez y repartirlo.

Palabras clave

PalabraQué significaEjemplo
HerenciaUna clase recibe los atributos y métodos de otra, sin escribirlos otra vez.Student recibe de Person
Clase padreLa clase de la que se hereda. Guarda lo que es común.Person
Clase hijaLa clase que hereda y añade cosas propias.Student
extendsLa palabra que dice de quién hereda una clase.class Student extends Person
superLlama al constructor de la clase padre.super(name);

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

extends: soy una persona y algo más

Escribes class Student extends Person. Se lee: un alumno es una persona.

El alumno ya tiene todo lo de Person. Solo escribes lo nuevo: el curso.

Así no repites código. Si cambias algo en Person, cambia para todos sus hijos.

Pruébalo: un alumno que es persona

Código: java
class Person {
    private String name;
    Person(String name) { this.name = name; }
    String getName() { return name; }
    String greet() { return "Hola, soy " + name; }
}

class Student extends Person {
    private String course;
    Student(String name, String course) {
        super(name);
        this.course = course;
    }
    String getCourse() { return course; }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student("Marta", "Programación");
        System.out.println(student.greet());
        System.out.println(student.getName() + " estudia " + student.getCourse());
    }
}

super llena la parte del padre

Un alumno tiene dos partes: la de persona y la suya. Las dos hay que rellenarlas.

La línea super(name); llama al constructor del padre. Tiene que ser la primera línea del constructor hijo.

Después rellenas lo propio: this.course = course;.

Ejemplo resuelto: qué tiene un Student

QuéDónde se escribióStudent lo tiene
namePersonSí, heredado
greet()PersonSí, heredado
getName()PersonSí, heredado
courseStudentSí, propio
getCourse()StudentSí, propio

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Repaso rápido

Inténtalo

Repaso rápido

3 preguntas
Pruébalo: tus respuestas se corrigen aquí y después se olvidan. Inicia sesión si quieres que se guarde tu puntuación y continuar donde lo dejaste.Iniciar sesión para guardar tu puntuación

Tus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.

El hijo no ve lo privado del padre

Advertencia

El atributo name es private en Person. Dentro de Student no puedes escribir name. Usa el método getName(). Lo privado lo conoce solo la clase que lo escribió.

La lección continúa

5 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.