Vorlesung Informatik 1 - Teil A: Java Kurs

2.4 Interface

Ein Interface ist so etwas wie eine abstrakte Klasse, es kann aber ausschließlich abstrakte Methoden enthalten. Deshalb müssen sie im Interface auch nicht abstrakt deklariert werden:

public interface Schiff{
    public void schwimmt();
}

public interface Fahrzeug{
    public void faehrt();
}

In einer .java Datei können mehrere Klassen und Interfaces hintereinander stehen, aber nur eine Klasse bzw. ein Interface kann öffentlich sein.

Das öffentliche Interface bzw. die öffentliche Klasse heißt dann genau so wie die Klasse. Dabei achtet der Compiler auf Groß/Kleinschreibung, selbst wenn das Dateisystem wie bei älteren Windows Versionen keinen Unterschied macht.  

Eine Klasse, die ein Interface implementiert, muss alle Methoden des Interface implementieren oder selbst abstrakt sein.

Interfaces können von anderen Interfaces erben  (extends). Dabei ist mehrfache Vererbung möglich.

public interface Amphibienfahrzeug extends Fahrzeug, Schiff{
     public void anLanden();
}  

Auch leere Schnittstellen sind möglich (marker interface), z.B. ist EventListener ein leeres Interface.
Von ihm sind  ActionListener, MouseListener, MouseMotionListener und ca. 70 weitere Interfaces abgeleitet.
Marker Interfaces helfen, die Struktur die Klassen- und Interface-Hierarchie zu verbessern.

Interfaces dürfen Variablen enthalten, diese sind automatisch  public, static und final, also Konstanten und sollten in Großbuchstaben geschrieben werden:

public interface Elementarteilchen{
   int LICHTGESCHWINDIGKEIT = 299_792_458;  // Meter/sek.
       ...
}
 

Weiterführende Links

Schnittstellen in Java ist auch eine Insel

Lehrvideo  (YouTube)