Definition und Beispiel einer Schnittstelle

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.

  • Eine Klasse, die eine Schnittstelle implementiert, muss jede Methode der Schnittstelle implementieren oder von einer Superklasse erben.
  • Die Methoden der Schnittstelle müssen in der Klasse als public deklariert werden.
  • Die Konstanten der Schnittstelle können verwendet werden als wären sie in der Klasse selbst definiert worden.
  • Die Konstanten sollten in der Klasse nicht neu definiert werden.



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