zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Jaws, 120 Min. verfuegbar: true
Star Wars, 90 min. verfuegbar: true

Vererbung einsetzen

Die Videoband-Klasse enthält Basisinformation und wäre für Dokumentarfilme und Lehrfilme OK. Aber für Spielfilme werden mehr Informationen benötigt.

Wir werden uns eine Klasse erstellen, die der Klasse Videoband ähnelt, aber zusätzlich den Namen des Regisseurs und eine Bewertung für die Altersfreigabe enthält.

class Videoband
{
  String   titel;        // Titel des Videos
  int      laenge;       // Anzahl der Minuten
  boolean  vorhanden;    // ist das Video vorhanden?

  // Konstruktor
  public Videoband( String ttl )
  {
    titel = ttl; laenge = 90; vorhanden = true;
  }

  // Konstruktor
  public Videoband( String ttl, int len )
  {
    titel = ttl; laenge = len; vorhanden = true;
  }

  public void anzeigen()
  {
    System.out.println( titel + ", " + laenge + " Min. verfuegbar:" + vorhanden );
  }

}

class Spielfilm extends Videoband
{
  String  regisseur;     // Name des Regisseurs
  String  bewertung;     // G, PG, R, oder X

  // Konstruktor
  public Spielfilm( String ttl, int len, String reg, String bew )
  {
    super( ttl, len ); // den Konstruktor der Superklasse verwenden
    regisseur = reg;   // initialisieren, was in Spielfilm neu ist
    bewertung = bew;
  }

}

Die Klasse Spielfilm ist eine Subklasse von Videoband. Ein Objekt des Typs Spielfilm verfügt über die folgenden Elemente:

Element  
titel geerbt von Videoband
laenge geerbt von Videoband
vorhanden geerbt von Videoband
anzeigen() geerbt von Videoband
regisseurdefiniert in Spielfilm
bewertung definiert in Spielfilm

Beide Klassen sind definiert: Die Videoband-Klasse kann verwendet werden, um Objekte dieses Typs zu konstruieren, und jetzt kann die Spielfilm-Klasse verwendet werden, um Objekte vom Typ Spielfilm zu konstruieren.

FRAGE 10:

Erbt eine Subklasse sowohl Variablen als auch Methoden?