Java -Schnittstelle


Schnittstellen

Eine andere Möglichkeit, in Java Abstraktion zu erreichen, sind Schnittstellen.

An interfaceist eine vollständig " abstrakte Klasse ", die verwendet wird, um verwandte Methoden mit leeren Körpern zu gruppieren:

Beispiel

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

implements Um auf die Schnittstellenmethoden zugreifen zu können, muss die Schnittstelle von einer anderen Klasse mit dem Schlüsselwort (anstelle von ) "implementiert" (sozusagen geerbt) werden extends. Der Körper der Schnittstellenmethode wird von der Klasse "implement" bereitgestellt:

Beispiel

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Hinweise zu Schnittstellen:

  • Wie abstrakte Klassen können Schnittstellen nicht zum Erstellen von Objekten verwendet werden (im obigen Beispiel ist es nicht möglich, ein "Animal" -Objekt in der MyMainClass zu erstellen).
  • Schnittstellenmethoden haben keinen Hauptteil – der Hauptteil wird von der Klasse „implement“ bereitgestellt
  • Bei der Implementierung einer Schnittstelle müssen Sie alle ihre Methoden überschreiben
  • Schnittstellenmethoden sind standardmäßig abstractund public
  • Schnittstellenattribute sind standardmäßig public, staticundfinal
  • Eine Schnittstelle kann keinen Konstruktor enthalten (da sie nicht zum Erstellen von Objekten verwendet werden kann).

Warum und wann sollten Schnittstellen verwendet werden?

1) Um Sicherheit zu erreichen – verstecken Sie bestimmte Details und zeigen Sie nur die wichtigen Details eines Objekts (Schnittstelle).

2) Java unterstützt keine "Mehrfachvererbung" (eine Klasse kann nur von einer Oberklasse erben). Es kann jedoch mit Schnittstellen erreicht werden, da die Klasse mehrere Schnittstellen implementieren kann. Hinweis: Um mehrere Schnittstellen zu implementieren, trennen Sie sie durch ein Komma (siehe Beispiel unten).


Mehrere Schnittstellen

Um mehrere Schnittstellen zu implementieren, trennen Sie sie durch ein Komma:

Beispiel

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}