Hinweis: Wenn der Programmierer auch nur einen Konstruktor für eine Klasse schreibt, dann wird der Standardkonstruktor nicht zur Verfügung gestellt.
Spielfilm
instanziieren
In dem Beispielprogramm enthält die Klassendefinition von Videoband
einen Konstruktor, also wurde der Standardkonstruktor nicht automatisch zur Verfügung gestellt.
Damit verursacht der im vorherigen Beispiel für Spielfilm
vorgeschlagene Konstruktor einen Syntaxfehler.
Wir werden ihn nicht verwenden.
Hier ist ein Beispielprogramm, das zwei Klassen verwendet:
class VideoVerleih { public static void main(String args[]) { Videoband artikelA = new Videoband( "Microcosmos", 90); Spielfilm artikelB = new Spielfilm( "Jaws", 120, "Spielberg", "PG"); artikelA.anzeigen(); artikelB.anzeigen(); } }
(Wir können das Programm ausführen, indem wir die Klassendefinitionen der vorherigen Seiten in unsere Entwicklungsumgebung kopieren.) Wenn wir es ausführen, werden wir die folgende Ausgabe bekommen:
Microcosmos, 90 Min. verfuegbar: true Jaws, 120 Min. verfuegbar: true
Die Anweisung artikelB.anzeigen()
ruft die anzeigen()
Methode von artikelB
.
Diese Methode wurde ohne Änderungen von der Klasse
Videoband
geerbt.
Sie sieht folgendermaßen aus:
public void anzeigen() { System.out.println( titel + ", " + laenge + " Min. verfuegbar:" + vorhanden); }
Sie erwähnt nicht die neuen Variablen, die den Objekten vom Typ Spielfilm
hinzugefügt wurden, also wird nichts Neues ausgegeben.
Warum können wir die Methode anzeigen()
in Videoband
nicht
um diese Zeile ergänzen?
System.out.println("Regisseur: " + regisseur + bewertung);