Das Schlüsselwort interface wird in Java verwendet, um einen speziellen Typ von Klasse zu deklarieren, der nur abstrakte Methoden, Standardmethoden, statische Methoden und finale Variablen enthält. Interfaces bieten eine Möglichkeit, Abstraktion und Mehrfachvererbung in Java zu erreichen.
Verwendung
Interfaces werden verwendet, um eine Reihe von Methoden festzulegen, die eine Klasse implementieren muss. Sie sind besonders nützlich, um einen Vertrag zu definieren, an den sich mehrere Klassen halten können und der sicherstellt, dass sie bestimmte Funktionalitäten bereitstellen.
Syntax
interfaceInterfaceName{// constant fields// abstract methods// default methods// static methods}Bereitgestellt von
InterfaceName: Der Name der Schnittstelle.
Konstante Felder: In einer Schnittstelle deklarierte Felder sind implizit public, static und final.
Abstrakte Methoden: Methoden ohne Körper, die von den Klassen implementiert werden müssen, die die Schnittstelle implementieren.
Standardmethoden: Methoden mit einem Körper, die eine Standardimplementierung bieten.
Statische Methoden: Methoden mit einem Körper, die zur Schnittstellenklasse selbst gehören.
Beispiele
Beispiel 1: Basic Interface
interfaceAnimal{voideat();voidsleep();}classDogimplementsAnimal{publicvoideat(){
System.out.println("Dog is eating");}publicvoidsleep(){
System.out.println("Dog is sleeping");}}publicclassInterfaceExample{publicstaticvoidmain(String[] args){
Dog dog =newDog();
dog.eat();
dog.sleep();}}Bereitgestellt von
In diesem Beispiel deklariert die Schnittstelle Animal zwei abstrakte Methoden: eat und sleep. Die Klasse Dog implementiert die Schnittstelle Animal und bietet konkrete Implementierungen für diese Methoden.
Beispiel 2: Schnittstelle mit Standardmethode
interfaceVehicle{voidstart();defaultvoidstop(){
System.out.println("Vehicle is stopping");}}classCarimplementsVehicle{publicvoidstart(){
System.out.println("Car is starting");}}publicclassDefaultMethodExample{publicstaticvoidmain(String[] args){
Car car =newCar();
car.start();
car.stop();}}Bereitgestellt von
Hier enthält die Schnittstelle Vehicle eine Standardmethode stop. Die Klasse Car implementiert die Schnittstelle Vehicle und bietet eine Implementierung für die Methode start. Die Standardmethode stop wird vererbt und kann unverändert verwendet werden.
Beispiel 3: Schnittstelle mit statischer Methode
interfaceCalculator{static int add(int a, int b){return a + b;}}publicclassStaticMethodExample{publicstaticvoidmain(String[] args){
int result = Calculator.add(5,3);
System.out.println("Sum: "+ result);}}Bereitgestellt von
Dieses Beispiel demonstriert eine Schnittstelle Calculator mit einer statischen Methode add. Die statische Methode kann direkt über den Schnittstellennamen aufgerufen werden, ohne eine Instanz zu benötigen.
Tipps und bewährte Praktiken
Einzelne Verantwortung: Konzentriere die Schnittstellen auf eine einzige Aufgabe. Dadurch sind sie leichter zu verstehen und umzusetzen.
Benennungskonventionen: Verwende aussagekräftige Namen für Schnittstellen. Oft sind Schnittstellennamen Adjektive oder Substantive, die das Verhalten oder die Rolle beschreiben, wie Runnable, Serializable oder List.
Vermeide Überlastung: Vermeide das Überladen von Methoden in Schnittstellen, um Klarheit und Einfachheit zu wahren.
Verwende Standardmethoden mit Bedacht: Standardmethoden können nützlich sein, um Abwärtskompatibilität zu gewährleisten, aber verwende sie sparsam, um die Schnittstelle nicht zu verkomplizieren.
Dokumentenschnittstellen: Dokumentiere klar den Zweck und das erwartete Verhalten jeder Methode in der Schnittstelle, um die Implementierer anzuleiten.
Ziehe Komposition der Vererbung vor: Verwende Schnittstellen, um Fähigkeiten zu definieren, und ziehe Komposition der Vererbung vor, um flexiblen und wartbaren Code zu erhalten.
Zusätzliche Konzepte
Mehrere Schnittstellen
Eine Klasse in Java kann mehrere Schnittstellen implementieren, so dass sie die abstrakten Methoden aller implementierten Schnittstellen erben kann.
interfaceMovable{voidmove();}interfaceStoppable{voidstop();}classRobotimplementsMovable, Stoppable {publicvoidmove(){
System.out.println("Robot is moving");}publicvoidstop(){
System.out.println("Robot has stopped");}}publicclassMultipleInterfacesExample{publicstaticvoidmain(String[] args){
Robot robot =newRobot();
robot.move();
robot.stop();}}Bereitgestellt von
In diesem Beispiel implementiert die Klasse Robot die beiden Schnittstellen Movable und Stoppable und stellt damit Implementierungen für die in beiden Schnittstellen definierten Methoden bereit.
Das Schlüsselwort
interfacewird in Java verwendet, um einen speziellen Typ von Klasse zu deklarieren, der nur abstrakte Methoden, Standardmethoden, statische Methoden und finale Variablen enthält. Interfaces bieten eine Möglichkeit, Abstraktion und Mehrfachvererbung in Java zu erreichen.Verwendung
Interfaces werden verwendet, um eine Reihe von Methoden festzulegen, die eine Klasse implementieren muss. Sie sind besonders nützlich, um einen Vertrag zu definieren, an den sich mehrere Klassen halten können und der sicherstellt, dass sie bestimmte Funktionalitäten bereitstellen.
Syntax
InterfaceName: Der Name der Schnittstelle.public,staticundfinal.Beispiele
Beispiel 1: Basic Interface
In diesem Beispiel deklariert die Schnittstelle
Animalzwei abstrakte Methoden:eatundsleep. Die KlasseDogimplementiert die SchnittstelleAnimalund bietet konkrete Implementierungen für diese Methoden.Beispiel 2: Schnittstelle mit Standardmethode
Hier enthält die Schnittstelle
Vehicleeine Standardmethodestop. Die KlasseCarimplementiert die SchnittstelleVehicleund bietet eine Implementierung für die Methodestart. Die Standardmethodestopwird vererbt und kann unverändert verwendet werden.Beispiel 3: Schnittstelle mit statischer Methode
Dieses Beispiel demonstriert eine Schnittstelle
Calculatormit einer statischen Methodeadd. Die statische Methode kann direkt über den Schnittstellennamen aufgerufen werden, ohne eine Instanz zu benötigen.Tipps und bewährte Praktiken
Runnable,SerializableoderList.Zusätzliche Konzepte
Mehrere Schnittstellen
Eine Klasse in Java kann mehrere Schnittstellen implementieren, so dass sie die abstrakten Methoden aller implementierten Schnittstellen erben kann.
In diesem Beispiel implementiert die Klasse
Robotdie beiden SchnittstellenMovableundStoppableund stellt damit Implementierungen für die in beiden Schnittstellen definierten Methoden bereit.