MINT üben

Vererbung

Zwei Textaufgaben mit Hinweisen und Erwartungshorizont zu extends, super und überschriebenen Methoden.

Dein Fortschritt:
0 / 0 Aufgaben
1

Videos auf der Lernplattform

AFB I–II

Auf der Lernplattform der Schule können Videos hochgeladen werden. Erklärvideos für ein Unterrichtsfach sind besondere Videos: Sie heißen Tutorials und speichern zusätzlich das Fach. Die Plattform erzeugt ein Video v = new Video("Skate-Tricks", 12) und ein Tutorial t = new Tutorial("Brüche kürzen", 8, "Mathe").

Lukas hat vorher eine eigene Fassung der Unterklasse geschrieben, die javac nicht übersetzt (Material 3).

Material 1: Klassendiagramm
Video
  • - titel: Zeichenkette
  • - minuten: Ganzzahl
  • c Video(titel: Zeichenkette, minuten: Ganzzahl)
  • + getTitel(): Zeichenkette
  • + getMinuten(): Ganzzahl
  • + beschreibung(): Zeichenkette
Tutorial
  • - fach: Zeichenkette
  • c Tutorial(titel: Zeichenkette, minuten: Ganzzahl, fach: Zeichenkette)
  • + getFach(): Zeichenkette
  • + beschreibung(): Zeichenkette
Der Pfeil mit hohler Spitze zeigt zur Oberklasse.
Material 2: Die Klassen in Java
public class Video {
    private String titel;
    private int minuten;

    public Video(String titel, int minuten) {
        this.titel = titel;
        this.minuten = minuten;
    }

    public String getTitel() {
        return titel;
    }

    public int getMinuten() {
        return minuten;
    }

    public String beschreibung() {
        return titel + " (" + minuten + " min)";
    }
}

public class Tutorial extends Video {
    private String fach;

    public Tutorial(String titel, int minuten, String fach) {
        super(titel, minuten);
        this.fach = fach;
    }

    public String getFach() {
        return fach;
    }

    @Override
    public String beschreibung() {
        return fach + ": " + super.beschreibung();
    }
}
Jede Klasse steht in einer eigenen Datei.
Material 3: Lukas’ Fassung (Ausschnitt)
public Tutorial(String titel, int minuten, String fach) {
    this.fach = fach;
    super(titel, minuten);
}

public String kurz() {
    return titel;
}
javac meldet zwei Fehler.
  1. Ordne jede Methode, die ein Tutorial-Objekt aufrufen kann, einer der Gruppen „geerbt“, „neu“ oder „überschrieben“ zu.
  2. Bestimme die Ergebnisse von v.beschreibung(), t.beschreibung(), t.getMinuten() und v.getFach().
  3. Erläutere die beiden Fehler in Lukas’ Fassung (Material 3) und wie man sie vermeidet.

Hinweise

Hinweis zu Aufgabe a)
Ein Tutorial „ist ein“ Video: Es kann alle öffentlichen Methoden der Oberklasse nutzen. Welche Methode steht in beiden Karten?
Hinweis zu Aufgabe b)
Es läuft immer die Methode der Klasse, zu der das Objekt gehört. super.beschreibung() ruft die Fassung der Oberklasse auf. Hat ein Video ein Fach?
Hinweis zu Aufgabe c)
Wo muss der Aufruf des Oberklassen-Konstruktors stehen? Und wer darf auf ein private-Attribut zugreifen – auch eine Unterklasse?