CodeGym /Java-Blog /Random-DE /Implementiert in Java
Autor
Milan Vucic
Programming Tutor at Codementor.io

Implementiert in Java

Veröffentlicht in der Gruppe Random-DE
Wenn manche über das Java-OOP-Paradigma der Vererbung sprechen, meinen sie normalerweise die Erweiterung einer übergeordneten Klasse um einen Erben, eine untergeordnete Klasse. Wenn Sie jedoch auf das Schlüsselwort „Java implementiert“ stoßen, bedeutet dies, dass wir auf eine andere Abstraktionsebene wechseln und beginnen, mit Schnittstellen in Java zu arbeiten. Wir werden darüber sprechen, was Schnittstellen sind, wozu sie dienen und wie die Implementierung erfolgt.

Was ist Schnittstelle und Implementierung?

Sie haben das Wort „Schnittstelle“ wahrscheinlich schon oft gehört. Beispielsweise verfügt ein Computer über eine Eingabeschnittstelle (Maus und Tastatur), viele Programme verfügen über Benutzeroberflächen. Im weitesten Sinne ist eine Schnittstelle eine Verbindung zwischen zwei interagierenden Parteien. Zum Beispiel dieselbe Tastatur oder dieselbe TV-Fernbedienung. In der Programmierung und insbesondere in Java ist eine Schnittstelle ein spezifischer Vertrag, der angibt, was die Klasse tun wird, die sie implementiert. Eine Schnittstelle definiert nur das Verhalten. Es sagt nichts über das Objekt aus, das es implementieren wird. Sie können eine Schnittstelle in Java wie folgt deklarieren:

public interface MyInterface  {

     // constants declaration 
     // methods without implementation
     // static methods
     // default methods (default)
     // private methods
}
Hier ist eine Syntax von Implements in Java:

public class MyClass implements MyInterface{
//implementing the methods of MyInterface 
//Other code
} 
Eine Schnittstelle beschreibt Verhalten, ohne es zu spezifizieren. Beispielsweise kann ein Verhalten wie „Bewegung“ auf verschiedene Arten von Objekten angewendet werden: ein Fahrrad, eine Person, ein Auto, Wasser in einem Fluss und so weiter. Das Verhalten beim Schwimmen kann das Verhalten einer Ente, eines Schiffes oder eines Fisches sein. Diese Objekte haben nichts gemeinsam, außer dass sie sich bewegen oder schwimmen können. Ja, und die Bewegung selbst beim Schwimmen ist sehr unterschiedlich. In Java können Sie jedoch die Klassen Duck , Boat und Fish erstellen und diese die Fähigkeit zum Schwimmen implementieren lassen. Hier wird das Schlüsselwort Java Implements verwendet.

Beispiel für ein Schlüsselwort implementieren


public interface Swimmable {
  
   void moveForward();
   void TurnRight();
   void TurnLeft();
  
}
Wie Sie sehen, sind die Methoden selbst nicht implementiert. Aber wir haben erklärt, dass die Klassen, die diese Schnittstelle implementieren, in der Lage sein müssen, in einer geraden Linie zu schwimmen sowie nach rechts und links abzubiegen. Lassen Sie uns Klassen erstellen, die diese Schnittstelle implementieren.

public class Duck implements Swimmable {
//implementing the methods
   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

}

public class Fish implements Swimmable {

   public void moveForward() {
       System.out.println("I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft() {
       System.out.println("I am turning left...");
   }

   public void turnUp(){
       System.out.println("I am turning up...");
   }

   public void turnDown(){
       System.out.println("I am turning down...");
   }

   public void Stop() {
       System.out.println("I am relaxing somewhere under the water surface...");
   }
}
Alle Klassen, die laut Vertrag die Swimmable- Schnittstelle implementieren, müssen in der Lage sein, vorwärts zu schwimmen (die Methode moveForward() zu implementieren ) sowie nach rechts und links abzubiegen. Die Implementierung dieser Methoden ist erforderlich. Eine Ente und ein Fisch schwimmen unterschiedlich. Nehmen wir an, ein Fisch verfügt über zwei zusätzliche Methoden, die seine Fähigkeit zum Auf- und Abschwimmen implementieren. Die Swimmable-Schnittstelle verfügt nicht über diese. Wenn wir jedoch ein Kind der Fischklasse erstellen, zum Beispiel Thunfisch oder Lachs, können diese, wie jeder „Fisch“, auf und ab schwimmen.

Mehrere Schnittstellen in Java

Wie Sie wahrscheinlich bereits wissen, unterstützt Java keine Mehrfachvererbung. Das bedeutet, dass eine Klasse nur von einer Superklasse geerbt werden kann. In gewisser Weise können Sie in Java jedoch immer noch die „Mehrfachvererbung“ verwenden, da eine Klasse mehrere Schnittstellen implementieren kann.

To implement multiple interfaces, use the next syntax: 
interface MyFirstInterface {
   public void myMethod();
}
interface MySecondInterface {
   public void myOtherMethod();
}

// MyClass implements both MyFirstInterface and MySecondInterface
class MyClass implements MyFirstInterface, MySecondInterface {
   public void myMethod() {
      //method implementation
   }
   public void myOtherMethod() {
     //method implementation
   }
}

Beispiel für mehrere Schnittstellen

Denken Sie daran, dass eine Ente nicht nur schwimmen, sondern auch fliegen kann. Schreiben wir die Flugschnittstelle und implementieren sie in unserer Ente.

public interface Flyable {
   double startAge = 0.1;
   void fly();
}

public class Duck implements Swimmable, Flyable {

   public void moveForward() {
       System.out.println(" Quack, I am moving forward...");
   }

   public void TurnRight(){
       System.out.println("I am turning right...");
   }
   public void TurnLeft(){
       System.out.println("I am turning left...");

   }

   public void Stop() {
       System.out.println("Quack. I am relaxing on the surface of the water...");
   }

   public void fly(){
       System.out.println("I am flying!!!");
   }

}
Und auch hier ist es wichtig, sich daran zu erinnern, warum wir die Schnittstelle schreiben. Nehmen wir an, wenn es von einem Vogel, einem Flugzeug, einem Fallschirmspringer und einem Löwenzahn umgesetzt wird, werden ihre Flüge völlig anders sein.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION