Mehrere Schnittstellen implementieren in Java

Mohammad Irfan 12 Oktober 2023
  1. Implementiert mehrere Schnittstellen in Java
  2. Schnittstelle erweitert mehrere Schnittstellen in Java
Mehrere Schnittstellen implementieren in Java

Dieses Tutorial stellt vor, wie eine Klasse mehrere Schnittstellen in Java implementieren kann, und listet auch einige Beispielcodes auf, um das Thema zu verstehen.

In Java ähnelt eine Schnittstelle einer Klasse, außer dass sie nur abstrakte Methoden haben kann. Eine Schnittstelle wird als Blaupause für eine Klasse bezeichnet, und die Klasse, die eine Schnittstelle implementiert, muss eine Implementierung für alle abstrakten Methoden bereitstellen oder die Zusammenfassung selbst deklarieren.

In Java kann die Klasse nur eine einzelne Klasse erweitern, aber mehrere Schnittstellen implementieren. Wenn Sie also jemand fragt, kann eine Klasse mehrere Schnittstellen implementieren? Sagen Sie dann JA.

Beginnen wir mit einigen Codebeispielen, um das Konzept zu verstehen. Dies ist eine allgemeine Struktur der Implementierung mehrerer Schnittstellen.

class A implements B, C, D
....Z

Vorhandene Klassen in Java-Sammlungen, die mehrere Schnittstellen implementieren, sind:

Abgesehen vom Entwicklercode werden wir, wenn wir den JDK-Quellcode bemerken, feststellen, dass Java mehrere Schnittstellenimplementierungen wie ArrayList, HashMap-Klasse usw. verwendet hat.

ArrayList<E> implementiert mehrere Schnittstellen

public class ArrayList<E>
    extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable
// Implements multiple interfaces

HashMap<K,V> implementiert mehrere Schnittstellen

public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, Cloneable, Serializable
// Implements multiple interfaces

Implementiert mehrere Schnittstellen in Java

Java ermöglicht es einer Klasse, mehrere Schnittstellen zu implementieren. Wir können also so viel umsetzen, wie wir wollen. In diesem Beispiel haben wir 3 Interfaces erstellt und diese dann mithilfe einer Klasse implementiert.

Stellen Sie bei der Arbeit mit der Schnittstelle sicher, dass die Klasse alle ihre abstrakten Methoden implementiert. Sehen Sie sich das Beispiel unten an, in dem wir alle Methoden aller 3 Schnittstellen implementiert haben.

package javaexample;
interface A {
  void showA();
}
interface B {
  void showB();
}
interface C {
  void showC();
}
public class SimpleTesting implements A, B, C {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    st.showA();
    st.showB();
    st.showC();
  }
  @Override
  public void showA() {
    System.out.println("Interface A");
  }
  @Override
  public void showB() {
    System.out.println("Interface B");
  }
  @Override
  public void showC() {
    System.out.println("Interface C");
  }
}

Ausgabe:

Interface A
Interface B
Interface C

Schnittstelle erweitert mehrere Schnittstellen in Java

Eine Schnittstelle kann auch mehrere Schnittstellen implementieren (erweitern). Java ermöglicht Schnittstellen wie eine Klasse und kann mehrere Schnittstellen implementieren.

Im Fall von interface sollten wir das Schlüsselwort externds anstelle von implements verwenden, um Schnittstellen zu implementieren. Siehe das Beispiel unten.

package javaexample;
interface A {
  void showA();
}
interface B {
  void showB();
}
interface C {
  void showC();
}
interface D extends A, B, C {
  void showD();
}
public class SimpleTesting implements D {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    st.showA();
    st.showB();
    st.showC();
    st.showD();
  }
  @Override
  public void showA() {
    System.out.println("Interface A");
  }
  @Override
  public void showB() {
    System.out.println("Interface B");
  }
  @Override
  public void showC() {
    System.out.println("Interface C");
  }
  @Override
  public void showD() {
    System.out.println("Interface D");
  }
}

Ausgabe:

Interface A
Interface B
Interface C
Interface D

Wenn Sie eine Schnittstelle in einer Klasse implementieren, ist es wichtig, dass Sie Implementierungen von abstrakten Methoden bereitstellen müssen, sonst gibt der Java-Compiler einen Fehler aus. Siehe das Beispiel unten.

package javaexample;
interface A {
  void showA();
}
interface B {
  void showB();
}
public class SimpleTesting implements A, B {
  public static void main(String[] args) {
    SimpleTesting st = new SimpleTesting();
    st.showA();
    st.showB();
  }
  @Override
  public void showA() {
    System.out.println("Interface A");
  }
}

Ausgabe:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The type SimpleTesting must implement the inherited abstract method B.showB()

Verwandter Artikel - Java Interface