Eine gute Antwort könnte sein:

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

Vererbung einsetzen

Die VideoTape Klasse enthält Basisinformation und würde OK sein für Dokumentarfilme und Lehrfilme. Aber Spielfilme brauchen mehr Informationen. Lassen Sie uns eine Klasse anfertigen, die der Klasse VideoTape ähnelt, aber den Namen des Regisseurs und eine Bewertung besitzt.

class VideoTape
{
  String  title;    // Titel des Videos
  int     length;   // Anzahl der Minuten
  boolean avail;    // ist das Video vorhanden?

  // Konstruktor
  public VideoTape( String ttl )
  {
    title = ttl; length = 90; avail = true;
  }

  // Konstruktor
  public VideoTape( String ttl, int lngth )
  {
    title = ttl; length = lngth; avail = true;
  }

  public void show()
  {
    System.out.println( title + ", " + length + " Min. verfuegbar:" + avail );
  }

}

class Movie extends VideoTape
{
  String  director;     // Name des Regisseurs
  String  rating;       // G, PG, R, oder X

  // Konstruktor
  public Movie( String ttl, int lngth, String dir, String rtng )
  {
    super( ttl, lngth );                 // den Konstruktor der Superklasse verwenden
    director = dir;  rating = rtng;      // initialisieren, was in Movie neu ist
  }

}

Die Klasse Movie ist eine Subklasse von VideoTape. Ein Objekt des Typs Movie verfügt über die folgenden Member:

Member  
title geerbt von VideoTape
length geerbt von VideoTape
avail geerbt von VideoTape
show() geerbt von VideoTape
directordefiniert in Movie
rating definiert in Movie

Beide Klassen sind definiert: die VideoTape Klasse kann verwendet werden um Objekte dieses Typs zu konstruieren und jetzt kann die Movie Klasse verwendet werden um Objekte vom Typ Movie zu konstruieren.


FRAGE 10:

Erbt eine Subklasse sowohl Variablen als auch Methoden?