Interfaces
Interfaces sind ein Versprechen, dass später ein Objekt eine
bestimmte Schnittstelle realisieren wird. Bestimmte Schnittstelle heißt in Java
im Wesentlichen, dass es eine bestimmte Menge von Methoden geben wird.
Interfaces versprechen also, dass Objekte bestimmte Methoden haben werden.
Neben den Methoden werden in Interfaces üblicherweise alle Konstanten
definiert, die man zum Aufruf der Methoden benötigt. Diese Konstanten
deklariert man mit static
final, denn man braucht eine Konstante nur einmal (deshalb static),
und man darf sie nie mehr verändern (deshalb final).
Genauer zu static
final später.
Die Deklaration eines Interface sieht einer Klassendeklaration sehr ähnlich;
Interfaces können von anderen Interfaces erben.
|
public interface LaufenInterface{
static final int ALTER = 7; //Konstante
public void laufe(); //Methode
}
|
|
Java kennt keine Mehrfachvererbung. Diese Einschränkung kann man mit
Interfaces ein wenig abmildern, denn Interfaces können in Klassen implementiert
werden, die im Vererbungsbaum nichts miteinander zu tun haben. So laufen zum
Beispiel nicht nur Elefanten, sondern auch Nasen:
|
public class Elefant extends Tier implements LaufenInterface
public Elefant() {
}
public void laufe() {
System.out.println("Trapp Trapp");
}
}
|
|
|
public class Nase extends Object implements LaufenInterface
public Nase() {
}
public void laufe() {
System.out.println("Tropf Tropf");
}
}
|
|
Diese Konstrukte kann man nun ganz bequem über das LaufenInterface aufrufen:
|
public class Main
public Main() {
}
public static void Main(String[] args){
LaufenInterface dumbo = new Elefant();
LaufenInterface nase = new Nase();
dumbo.laufe();
nase.laufe();
}
}
|
|
Es sei noch einmal veranschaulicht, wie ein Interface die Einfachvererbung
von Java durchbricht:
