zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

  1. Der Programmierer kann einen argumentenlosen Konstruktor für eine Klasse schreiben.
  2. Wenn der Programmierer überhaupt keine Konstruktoren für eine Klasse schreibt, dann wird automatisch ein argumentenloser Konstruktor (Standardkonstruktor genannt) zur Verfügung gestellt.

Hinweis: Wenn der Programmierer auch nur einen Konstruktor für eine Klasse schreibt, dann wird der Standardkonstruktor nicht zur Verfügung gestellt.

Klasse 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.

FRAGE 14:

Warum können wir die Methode anzeigen() in Videoband nicht um diese Zeile ergänzen?

System.out.println( "Regisseur: " + regisseur + bewertung );