Was ist eine Schnittstelle in Java?

Ein Schnittstelle in Java ist eine Klasse ähnlich, aber der Körper einer Schnittstelle kann nur abstrakte Methoden und letzten Felder (Konstanten) umfassen. Eine Klasse implementsan Schnittstelle von Code für jede Methode der Schnittstelle deklariert bereitstellt.

Hier ist eine grundlegende Schnittstelle, die eine einzige Methode definiert, mit dem Namen bespielbar, das schließt eine einzige Methode namens spielen:

public interface Spielbar {void play () -}

Diese Schnittstelle erklärt, dass jede Klasse, die implementiert die bespielbar Schnittstelle muss eine Implementierung für ein Verfahren bereitzustellen, benannt spielen dass nimmt keine Parameter und keinen Wert zurück.

Beachten Sie, dass der Name der Schnittstelle (bespielbar) Ist ein Adjektiv. Die meisten Schnittstellen sind mit eher Adjektive als Substantive genannt, weil sie eine zusätzliche Fähigkeit oder die Qualität der Klassen beschreiben, die die Schnittstelle implementieren. So dass Klassen implementieren die bespielbar Schnittstelle repräsentieren Objekte, die abgespielt werden können.

Falls Sie auf der englischen Klasse nicht in eine Weile, ein Adjektiv ist ein Wort, das ein Substantiv modifiziert. Sie können durch das Hinzufügen viele Verben Adjektive konvertieren -fähig bis zum Ende des Wortes - spielbar, lesbar, befahrbar, und arretierbar, Art der Adjektiv für example.This ist für Interface-Namen verwendet.

Alle Methoden in einer Schnittstelle sind öffentlich und abstrakt angenommen. Um eine Schnittstelle zu implementieren, muss eine Klasse zwei Dinge tun:

  • Es muss ein angeben Arbeitsgeräte Klausel über seine Klassendeklaration.

  • Es muss eine Implementierung für jede von der Schnittstelle deklariert Methode zur Verfügung stellen.

Hier ist eine Klasse, die die implementiert bespielbar Schnittstelle:

public class TicTacToe implementiert Spielbar {// zusätzliche Felder und Methoden gehen herepublic Leere play () {// Code, der das Spiel spielt, geht hier} // zusätzliche Felder und Methoden, die hier gehen}

Hier ist die Erklärung für die TicTacToe -Klasse gibt implementiert Spielbar. Dann wird der Körper der Klasse umfasst eine Implementierung der spielen Verfahren.

Eine Klasse kann mehr als eine Schnittstelle implementieren:

public class HeartsGame implementiert Spielbar, Patience-Variante {// müssen Methoden der spielbaren implementieren // und Kartenspiel-Schnittstellen}

Hier wird die HeartsGame Klasse implementiert zwei Schnittstellen: bespielbar und Kartenspiel.

Eine Schnittstelle ist eine Art von Typ, wie eine Klasse. Als Ergebnis können Sie eine Schnittstelle als Typ für eine Variable, ein Parameter oder Rückgabewert der Methode verwenden.

Betrachten Sie diese Code-Snippet:

Spielbar Spiel = getGame () - game.play () -

Hier gehen davon aus, dass die getGame Methode liefert ein Objekt, das die implementiert bespielbar Schnittstelle. Diese Aufgabe wird auf eine Variable vom Typ zugeordnet bespielbar in der ersten Anweisung. Dann wird die zweite Anweisung ruft die Objekt spielen Verfahren.

Alternativ können Sie den Konstruktor einer Klasse aufrufen, die implementiert bespielbar Schnittstelle. Zum Beispiel nehme an, dass eine Klasse mit dem Namen HeartsGame implementiert die bespielbar Schnittstelle. Dann könnten Sie den folgenden Code verwenden:

Spielbar Spiel = new HeartsGame () -

Menü