zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein. Instanzvariablen (so wie y) können nicht in eine Schnittstelle gestellt werden. Nur Konstanten und Methoden.

Schnittstelle IrgendeineSchnittstelle
{
  public final int X = 32;
  public double y; // keine Instanzvariablen erlaubt

  public double addiereAuf( );
}

Eine Schnittstelle implementieren

Eine Klassendefinition kann immer nur genau eine Superklasse erweitern, aber sie kann 0, eine oder mehrere Schnittstellen implementieren:

class IrgendeineKlasse extends Superklasse implements IrgendeineSchnittstelle
{

   Körper der üblichen Klassendefinition

}

Der Körper der Klassendefinition ist der gleiche wie immer. Aber da die Klasse eine Schnittstelle implementiert, muss der Körper eine Definition jeder nicht-konkreten Methode der Schnittstelle enthalten. Die Klassendefinition kann wie gewöhnlich Zugriffsmodifizierer verwenden. Hier ist eine Klassendefinition, die drei Schnittstellen implementiert:

public class GrosseKlasse extends Superklasse
    implements  SchnittstelleA, SchnittstelleB, SchnittstelleC
{

   Körper der üblichen Klassendefinition

}

Jetzt muss GrosseKlasse eine Methodendefinition für jede Methode in jeder Schnittstelle zur Verfügung stellen.

Dieselben Schnittstellen können von einer beliebigen Anzahl Klassen implementiert werden. Hier ist eine weitere Klassendefinition:

public class KleineKlasse implements SchnittstelleA
{

   Körper der üblichen Klassendefinition

}

FRAGE 4:

Ist die oben stehende Klassendefinition korrekt? Welche Superklasse erweitert sie?

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite