Java Interfaces erklärt: Definition, Implementierung und praktische Beispiele
Was ist ein Java Interface?
Ein Java Interface ist ein abstrakter Typ, der einen Vertrag für Klassen definiert. Er kann Konstanten und abstrakte Methoden deklarieren, aber keinen Zustand halten. Alle Methoden sind implizit public und abstract, und eine Klasse kann mehrere Interfaces implementieren und so das erforderliche Verhalten bereitstellen.
Interface deklarieren
interface MyInterface {
// abstrakte Methoden
}
Interface implementieren
class Dog implements Pet {
// Methoden von Pet implementieren
}
Interfaces erweitern
interface RidableAnimal extends Animal, Vehicle {
// zusätzliche abstrakte Methoden
}
Warum werden Interfaces benötigt?
Interfaces erlauben die Trennung von Was vom Wie. Sie ermöglichen Polymorphie, fördern lose Kopplung und lösen das „Mehrfachvererbungs“-Problem, das Java für Klassen nicht unterstützt.
Zum Beispiel kann ein MediaPlayer separate CDPlayer- und DVDPlayer-Unterklassen haben, die jeweils ihre eigene play()-Implementierung bereitstellen. Wenn eine Klasse beide Fähigkeiten benötigte, würde Java die Mehrfachvererbung von Klassen verbieten, aber ein Interface lässt uns die Verhaltensweisen sauber kombinieren.


Ebenso kann eine Dog-Klasse Animal erweitern und ein Pet-Interface implementieren, um sowohl Vererbung als auch vertragliche Verpflichtungen zu erfüllen.

Java Interface Beispiel
Schritt 1: Schreiben Sie den folgenden Code:
interface Pet {
void test();
}
class Dog implements Pet {
@Override
public void test() {
System.out.println("Interface method implemented");
}
public static void main(String[] args) {
Pet p = new Dog();
p.test();
}
}
Schritt 2: Kompilieren und ausführen, um die Ausgabe zu sehen.
Klasse vs. Interface
| Klasse | Interface |
|---|---|
| Eine Klasse kann instanziiert werden und Zustand enthalten. | Ein Interface kann nicht instanziiert werden und enthält nur Konstanten und Methodensignaturen. |
| Kann konkrete (implementierte) Methoden haben. | Vor Java 8 keine konkreten Methoden; ab Java 8 default und static Methoden erlaubt. |
Zugriffsmodifikatoren können private, protected oder public sein. | Alle Member sind implizit public (und static final für Felder). |
Wann Interface vs. abstrakte Klasse verwenden?
- Abstrakte Klasse: Verwenden, wenn Sie eine gemeinsame Basimplementierung oder geteilten Zustand für verwandte Klassen benötigen.
- Interface: Verwenden, wenn Sie eine Rolle oder Fähigkeit definieren, die von unverwandten Klassen übernommen werden kann.
Wichtige Fakten zu Interfaces
- Eine Klasse kann mehrere Interfaces implementieren, muss aber für jede deklarierte Methode eine Implementierung bereitstellen.
- Interfaces können nicht direkt instanziiert werden; sie dienen als Verträge.
- Interface-Referenzen können auf jede implementierende Klasse zeigen.
- Ein Interface kann ein oder mehrere andere Interfaces erweitern.
- Verschachtelte Interfaces sind in anderen Interfaces oder Klassen erlaubt.
- Zwei Interfaces dürfen keine Methoden mit demselben Namen, aber unterschiedlichen Rückgabetypen deklarieren, wenn eine Klasse beide implementiert.
- Ab Java 8 können Interfaces
defaultundstaticMethoden enthalten.
Zusammenfassung
- Interfaces definieren einen Vertrag; Klassen liefern die Implementierung.
- Alle Interface-Methoden sind implizit
publicundabstract(außerdefaultoderstatic). - Interfaces können nicht instanziiert, aber durch Variablen referenziert werden.
- Interfaces nutzen, um Polymorphie zu erreichen und Javas Einschränkung der einfachen Vererbung zu umgehen.
Java
- Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
- C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen
- C# Interfaces verstehen: Definition, Beispiel und praktische Anwendung
- Java String length() Methode: String-Länge ermitteln (Beispiel)
- Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
- Java String.endsWith(): String-Suffixe prüfen mit Beispielen
- Interface vs. Abstrakte Klasse in Java: Die richtige Abstraktion wählen
- Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
- Insertion Sort Algorithmus in Java: Klares Beispiel & Schritt-für-Schritt-Anleitung
- Java Interfaces verstehen: Definitionen, Verwendung und Best Practices