Dein Fortschritt:
0 / 0 Aufgaben
1
Videos auf der Lernplattform
AFB I–IIAuf 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
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();
}
}
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.- Ordne jede Methode, die ein
Tutorial-Objekt aufrufen kann, einer der Gruppen „geerbt“, „neu“ oder „überschrieben“ zu. - Bestimme die Ergebnisse von
v.beschreibung(),t.beschreibung(),t.getMinuten()undv.getFach(). - 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?