JavaRush /Java-Blog /Random-DE /Warum werden Schnittstellen benötigt?
Павел
Level 11

Warum werden Schnittstellen benötigt?

Veröffentlicht in der Gruppe Random-DE
Warum werden Schnittstellen benötigt? Warum ist eine Schnittstellenvererbung notwendig? Warum wird Polymorphismus benötigt? Für diejenigen, die gelesen und verstanden haben, wie man Schnittstellen erstellt, aber nicht verstanden haben, warum.

Haftungsausschluss: In diesem und den folgenden Artikeln erfolgt die Benennung von Klassen und Methoden auf Russisch.

Wenn es um die Prinzipien der objektorientierten Programmierung (OOP) geht: Polymorphismus, Vererbung und Kapselung, ist es hilfreich, Analogien aus der realen Welt zu verwenden. Der große Vorteil von OOP besteht darin, dass wir einen Teil des realen Universums in einem Programm simulieren können. Lassen Sie uns die Familie Ivanov modellieren: Vater , Mutter und Junge Petja . Von Papa hat Petya die Angewohnheit geerbt, beim Teetrinken zu schlürfen, und von Mama hat er die Angewohnheit geerbt, beim Lesen die Lippen zu spitzen. Wenn wir versuchen, diese Situation in ein Programm umzusetzen, erhalten wir am Ende drei Klassen:
class Папа
class Мама
class Петя
Papa und Mama haben Gewohnheiten, die an Pete weitergegeben werden müssen . Gewohnheiten sind gewissermaßen Handlungen – daher ist es am besten, sie als Methoden in die Softwarewelt zu implementieren: Dad First :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
    }
}
Jetzt Mama :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
   }
}
Wenn es um Vererbung geht, ist es logisch, den Code so zu schreiben:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Das heißt, Petja gleichzeitig von Papa und Mama zu erben . Wenn Sie es so schreiben, wird sich der Compiler beschweren, weil Java die Vererbung mehrerer Klassen nicht implementieren kann. In C++ ist das übrigens möglich, in Java jedoch nicht, da es bei der Mehrfachvererbung zu großen Problemen kommen kann: Sie schreiben ausführlich im Internet . Warum werden Schnittstellen benötigt?  - 1Um dieses „Unmögliche“ zu umgehen, verfügt Java über Schnittstellen. Und für Gewohnheiten werden wir eine eigene Schnittstelle entwickeln. Sogar zwei: Sie werden so aussehen:
public interface ПривычкиПапы {
    public void прихлюпывать();
}
public interface ПривычкиМамы {
    public void поджимать();
}
In der Schnittstelle haben wir nur die Gewohnheiten beschrieben, aber nicht, was sie konkret bewirken, da wir die spezifische Implementierung in Klassen schreiben werden. Lassen Sie uns zunächst Papa und Mama ihre rechtlichen Gewohnheiten vermitteln.
class Папа implements ПривычкиПапы {

   @Override
    public void прихлюпывать() {
     System.out.println("Хлюп");
   }
}

class Мама implements ПривычкиМамы{

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Und jetzt ist es absolut legal, Gewohnheiten gleichzeitig von Papa und Mama auf Pete zu übertragen
class Петя implements ПривычкиПапы, ПривычкиМамы {

@Override
public void прихлюпывать() {
     System.out.println("Хлюп");
   }

@Override
public void поджимать() {
System.out.println("Поджать губки");
    }
}
Das heißt, eine Mehrfachimplementierung (häufiger als Implementierung bezeichnet) in Java ist durchaus möglich. Warum werden Schnittstellen benötigt?  - 2Die Bedeutung von Schnittstellen sollte nun klar sein – in Java können Sie Mehrfachvererbung mithilfe von Schnittstellen implementieren. Wenn wir die Situation beispielsweise weiter entwickeln: Schließlich haben Papa und Mama wahrscheinlich Gewohnheiten, die sie nicht an Petja weitergegeben haben , und Petja hat möglicherweise auch seine eigenen persönlichen Gewohnheiten. In den folgenden Episoden erfahren Sie, wie Sie dieses lebenswichtige Santa Barbara auf die Java-Ebene übertragen können. Dies ist nicht das einzige Beispiel zum Verständnis von Schnittstellen. Wenn Sie die folgenden Artikel nicht gelesen haben, lesen Sie unbedingt: Schnittstellen in Java (falls nicht geöffnet, können Sie Ihr Profil verlassen oder im Inkognito-Modus lesen) Warum Schnittstellen in benötigt werden Java – implementieren Sie alle Beispiele aus dem Artikel hier und ändern Sie die Methoden sowohl in Schnittstellen als auch in Klassen: Namen von Methoden, Signaturen (was die Methode als Eingabe akzeptiert), Ausgabetypen von Methoden. Verstehen Sie selbst: - den Unterschied bei der Implementierung einer Schnittstelle mit einer Klasse und einer abstrakten Klasse; - Standardmethoden.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION