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.

interface 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 Teil extends Superklasse muss vor implements IrgendeineSchnittstelle stehen. Wenn eine Klasse Object erweitert wird der extend Teil nicht benötigt.

Der Körper der Klassendefinition ist der gleiche wie immer. Aber da die Klasse eine Schnittstelle implementiert, muss der Klassenkörper jede Methode der Schnittstelle definieren oder erben. Hier ist eine Klassendefinition, die drei Schnittstellen implementiert:

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

   Körper der Klassendefinition

}

Jetzt muss GrosseKlasse die Methoden entweder von Superklasse erben oder eine Methodendefinition für die Methoden der drei Schnittstellen zur Verfügung stellen.

Eine beliebigen Anzahl von Klassen können dieselbe Schnittstelle implementieren. Die Implementationen der in einer Schnittstelle gelisteten Methoden kann in jeder Klasse eine andere sein. Alles was sie zu tun hat ist Methodenkörper zu implementieren, die mit den Methodenheadern der Schnittstellen übereinstimmen.


FRAGE 4:

public class KleineKlasse implements SchnittstelleA
{

   Körper der üblichen Klassendefinition

}

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

zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite