Java Interface
In diesem Beitrag zeigen wir dir, wie Java Interfaces aufgebaut sind und wie du sie in deinem Java Code verwenden kannst.
Du willst das ganze kurz und knapp in einem Video erklärt bekommen? Dann schau doch hier mal rein.
Inhaltsübersicht
Interface Java einfach erklärt
Im Deutschen bedeutet Interface Schnittstelle. In der Programmiersprache Java kann das Interface auch als Schnittstelle verstanden werden. Und zwar als Schnittstelle über die ein Objekt auf verschiedene Methoden zugreifen kann, die für mehrere Objekte gelten können. Damit handelt es sich um eine Möglichkeit der Umsetzung einer Mehrfachvererbung in Java. Eigentlich ist es in Java nur möglich von einer Mutterklasse zu erben . Mit einem Interface allerdings kannst du noch zusätzlich Methoden in deine Klasse mit aufnehmen und weiter bearbeiten.
Ein Java Interface ist eine Art Klasse , die nur aus Konstanten und abstrakten Methoden besteht. In dem Interface kannst du also Konstanten und Funktionen in Form von abstrakten Methoden definieren. Der Methodenkörper wird dabei in der Klasse implementiert, in der du das Interface verwendest. Das funktioniert mit dem Überschreiben von Methoden.
Auch kann ein Java Interface nicht benutzt werden, um Objekte zu erzeugen. Deshalb besitzt ein Interface keinen Konstruktor.
Java Interface Aufbau
Schauen wir uns den Aufbau eines Interface in Java einmal genauer an.
public interface X{
//Konstanten
public boolean b = true;
//Methodenkopf
public void addition();
public int multiplikation(int wert);
}
Hierbei handelt es sich um ein Interface mit dem Namen X
. Das besondere ist das Schlüsselwort interface
in dem Codebeispiel. Dadurch wird das Interface angelegt. Nun kannst du zwei weitere Dinge programmieren.
Einmal hast du die Möglichkeit Konstanten anzulegen. Dabei benutzt du wie gewohnt den Modifier public
und den Variablentyp. Alle Konstanten sind per default immer public, static
und final
deklariert.
Zum Zweiten kannst du den Methodenkopf
programmieren. Dazu benötigst du einen Rückgabewert und die Methodensignatur, bestehend aus Name und Parameter. Hier ist es auch möglich mehrere Parameter zu übergeben. Das heißt, du kannst die Signatur der jeweiligen Methode anpassen. Es ist dabei zu beachten, dass als Modifier für die Methoden in einem Interface nur public
und abstract
zulässig sind. Diese Modifier müssen jedoch nicht mit angegeben werden, da sie implizit vorhanden sind.
Java Interface verwenden
Wenn du das Interface nun benutzen möchtest, kannst du es wie folgt in eine Klasse einbinden.
public class Zahl implements X{
private int a;
//alle Methoden aus dem Interface X übernehmen
public void addition(){
System.out.println("Du führst eine Addition aus.");
}
public int multiplikation(int wert){
a = 2 * wert
return a;
}
}
Um also ein Interface benutzen zu können, benötigst du das Wort implements
. Dabei musst du alle Methoden, die in der Schnittstelle stehen auch in die Klasse mit übernehmen. Nach dem Schritt kannst du die Methoden mit Anweisungen füllen. Du ergänzt also in der Klasse Zahl den Methodenkörper, und gibst in der Klasse nun an, was die Methode machen soll. Die Methode im Interface veränderst du aber nicht.
Java Interface Beispiel
Am Beispiel der Methode addition()
können wir dir das Interface noch einmal verdeutlichen. Du hast jetzt eine Klasse Zahl gebaut, die das Interface X
implementiert. Das bedeutet, dass die Klasse Zahl alle Methoden aus X
übernehmen muss. Zum Beispiel musst du die Methode addition()
verwenden. Es ist aber bereits festgelegt, dass es hier keinen Rückgabewert geben darf. Dies ist der Unterschied zu der Methode multiplikation(int wert)
. Hier gibt es einen Rückgabewerte des Types Integer.
Nun fehlt uns noch die Klasse mit der Main Methode , um einen Startpunkt für unser Programm zu haben. Hier erzeugst du ein Objekt der Klasse Zahl und sprichst auch ihre Methoden Multiplikation und Addition an.
public class Main{
public static void main(String []args){
int wert = 2;
Zahl eins = new Zahl();
eins.addition();
System.out.println(eins.multiplikation(wert));
}
}
In der Main Methode erzeugst du zunächst ein Objekt des Typs Zahl mit dem Namen eins
. Anhand dieses Objekts kannst du die Methoden ausführen, die du zuvor der Klasse über die Schnittstelle mitgegeben hast. Hier kannst du , wenn du es zuvor definiert hast, auch einen Wert mitgeben. Anschließend kannst du auch den statischen Wert des Java Interface über X.b
abfragen. Das funktioniert auch aus anderen Klassen heraus, da die Konstanten in einem Interface static
sind.
Zusammengefasst ist also das Interface nutzbar für die Mehrfachvererbung in Java oder um sicherzustellen, dass ein bestimmtes Objekt auch bestimmte Eigenschaften hat. Du kannst auch ein Interface auf mehrere Objekte anwenden. Zum Beispiel gibt es nicht nur die Zahl eins, sondern auch zwei, drei, vier und so weiter. All diese Zahlen können multipliziert und addiert werden. Deshalb kannst du das Interface immer einbinden und es stellt diese Methoden sicher.
Mehrere Interfaces
In Java ist es auch möglich mehrere Interfaces in deine Klasse einzubinden. Dafür verwendest du ein Komma als Separator. Somit kannst du in deiner Klasse auf die Methoden von zwei verschiedenen Interfaces zurückgreifen und diese weiter verwenden. Schauen wir uns kurz an, wie das aussehen könnte.
public class Name implements Vorname, Nachname{
//Methoden des Interfaces Vorname überschreiben
//Methoden des Interfaces Nachname überschreiben
}
Somit kannst du die Methoden mehrerer Klassen in deine Klasse einbinden, benutzen und erweitern.