zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein. Schnittstellen können keine Instanzvariablen enthalten.

Definition und Beispiel einer Schnittstelle

Eine Schnittstelle sieht so aus:

interface EineSchnittstelle
{
  Definitionen der Konstanten

  Methodenheader (ohne Implementationen)
}

Ein Methodenheader besteht aus einem Zugriffsmodifizier, einem Rückgabetyp, dem Methodennamen und einer Parameterliste gefolgt von einem Semikolon. Eine Schnittstelle wird am besten in ihre eigene Quelldatei gestellt mit der Endung .java

Die Methoden in einer Schnittstelle sind standardmäßig public, so dass beim Methodenheader public ausgelassen werden kann.

Eine Schnittstelle ähnelt einer Klassendefinition. Aber es kann von ihr kein Objekt konstruiert werden. Stattdessen brauchen wir eine Klasse, die die Schnittstelle implementiert und konstruieren dann ein Objekt dieser Klasse.

Eine Klasse implementiert eine Schnittstelle indem sie das tut:

class EineKlasse extends EineSuperklasse
  implements EineSchnittstelle
{

}

Eine Klasse kann nur genau eine Superklasse erweitern, aber sie kann mehrere Schnittstellen implementieren.

Eine Klasse kann mehrere Schnittstellen implementieren, so wie hier:

class EineKlasse extends EineSuperklasse implements
  SchnittstelleA, SchnittstelleB, SchnittstelleC
{

}

Jetzt muss die Klasse jede der in den Schnittstellen aufgeführten Methoden entweder implementieren oder erben.

Hier ist ein Beispiel einer Schnittstellendefinition:

interface MeineSchnittstelle
{
  // zwei Konstanten
  public static final int EINEKONSTANTE = 32;
  public static final double MWST = 0.19;

  public void methodeA(int x); // Methodenheader
  public double methodeB(); // Methodenheader
}

Eine Methode in einer Schnittstelle ist standardmäßig public. Die Konstanten in einer Schnittstelle sind standardmäßig public static final. Denkt daran, dass final bedeutet, dass der Wert zur Laufzeit des Programms nicht geändert werden kann.

Wenn wir von den Standards Gebrauch machen, ist die oben stehende Schnittstelle äquivalent zu der folgenden:

interface MeineSchnittstelle
{
  //  eine Konstante ist standardmäßig
  //  public static final
  int    EINEKONSTANTE = 32;

  //  eine Konstante ist standardmäßig
  //  public static final
  double MWST = 0.19;

  // ein Methodenheader ist
  // standardmäßig public
  void methodeA(int x);

  // ein Methodenheader ist
  // standardmäßig: public
  double methodeB();
}

Die zweite Schnittstelle ist der bevorzugte Weise eine Schnittstelle zu definieren. Die Standards werden vorausgesetzt und nicht expliziert kodiert.


FRAGE 3:

interface IrgendMeineSchnittstelle
{
  public final int X = 32;
  public double y;

  public double addiereAuf( );
}

Wir prüfen die Schnittstelle. Ist sie korrekt? Klickt hier für einen


zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite