Ein Interface ist wie eine Abstrakte Klasse, die keine Attribute hat, und ausschließlich abstrakte Methoden hat. Ein Interface kann Konstanten haben. Von einem Interface können keine Objekte in Java erzeugt werden.
Eine Klasse kann mehrere Interfaces verwenden.
Interfaces sind der einzige Weg für Mehrfachvererbung in Java.
In Interfaces können keine Variablen deklariert werden, sie müssen auch definiert werden
Interfaces definieren
interface Inter{
public void method1();
public default void method2(){
System.out.println("Method 2");
}
}Interfaces verwenden
class Klasse implements Inter{
public void method1() {
System.out.println("Methode 1");
}
public void method3() {
System.out.println("Methode 3 Subklasse");
}
}Alle Methoden des Interfaces müssen implementiert werden, es ist kein @Override und kein abstract nötig, kann der Lesbarkeit halber aber verwendet werden.
Beispiel
public class Main {
public static void main(String[] args) {
Inter o1 = new Klasse();
o1.method1(); //Methode 1
o1.method2(); //Methode 2
//o1.method3(); //Gibt es nicht
Klasse o2 = new Klasse();
o2.method1(); //Methode 1
o2.method2(); //Methode 2
o2.method3(); //Methode 3 Subklasse
}
}