Was ist Super-Schnittstelle ist Java? Was ist der Zweck der Super-Schnittstelle?Superschnittstelle in Java
Antwort
Wenn Sie
public interface Bar extends Foo
haben dann Foo
wäre der Super-Schnittstelle von Bar
sein. Dies erklärt, dass alle Instanzen von Bar
sind auch Fälle von Foo
und können als solche behandelt werden, so könnten Sie eine Bar
Instanz übergeben, wo Sie eine Foo
passieren benötigt usw.
Hier ist ein Beispiel:
public interface A {
void doSomething();
}
public interface B extends A {
void doSomethingElse();
}
In diesem Beispiel ist A
eine Superschnittstelle von B
. Es ist wie eine Superklasse zu sein. Jede Klasse, die B
implementiert, implementiert nun auch automatisch A
und muss eine Implementierung von doSomething()
und doSomethingElse()
bereitstellen.
Hinweis: Eclipse sagt auch, dass X & Y ein "Superinterface" für "Schnittstelle Z erweitert X, Y" ist. – simpleuser
Wenn eine Schnittstelle von einer anderen Schnittstelle ausgeht, erzwingt sie die Klasse, die sie implementiert, um Methoden in beiden Schnittstellen zu implementieren.
Wenn eine Klausel erstreckt vorgesehen ist, dann die Schnittstelle deklariert wird erweitert jeder der anderen genannten Schnittstellen und daher die Elementtypen erbt, Methoden und Konstanten von jedem der anderen genannten Schnittstellen. Diese anderen genannten Schnittstellen sind die direkten Superschnittstellen der Schnittstelle, die deklariert sind. Jede Klasse, die die deklarierte Schnittstelle implementiert, wird auch betrachtet, um alle Schnittstellen zu implementieren, die diese Schnittstelle erweitert.
Sie können auch Verfahren überwiegendes haben :)
http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html
Schnittstellen in Java können sich gegenseitig verlängern, so dass die Verlängerung Schnittstelle alle von den Eltern zur Verfügung gestellt Dinge unterstützt, und die Dinge, die sie selbst liefert . Ein Set verfügt beispielsweise über eindeutige Operationen, unterstützt aber auch alles, was eine Collection ausführt.
Die Schnittstellen, von denen Sie erweitern, gelten als Super-Schnittstellen. Beachten Sie, dass eine Schnittstelle mehrere Schnittstellen erweitern kann und daher über mehrere Super-Schnittstellen verfügt.
Eigentlich ist eine Map keine Collection. – ColinD
@Uri - Karte erweitert nicht Sammlung ;-) Liste tut zwar, um Ihren Punkt zu unterstützen. – Robin
Tatsächlich ist Map explizit keine Sammlung, da ihre Operationen auf Objektpaaren statt auf einem einzelnen Objekt definiert sind. Die Map-Methoden sind sehr klar, ob sie für die Schlüssel oder die Werte gelten: die Verwendung als Collection wäre sehr mehrdeutig. – James
wenn Sie 2 Schnittstellen mit einigen verwandten (gleichen) Feldern oder Methoden haben. sollten Sie eine als superInterface verwenden, die die zweite erweitern wird, sollten Sie es nicht duplizieren. Dies ist, weil Einfachheit und Klarheit zu sehen, was genau vor sich geht.
Der Begriff Superschnitt hat leicht unterschiedlichen Verwendungszwecke, je nach Kontext von (a) -Schnittstellen nur, und (b) Klassen, wie nachstehend beschrieben:
(a) gegebenen Schnittstellen A und B, wenn B erstreckt sich eine dann ist A eine Superschnittstelle von B (die obige Erklärung von Tom.
)siehe jls8, 8.1.5
(b) gegebene Klasse X, und C-Schnittstelle, wenn X C umsetzt, dann ist C ein direkter Superschnitt von X.
siehe jls8, 9.1.3
Der zweiten Fall hier ist aus keiner der vorherigen Erklärungen klar. Das heißt, im Fall (b) besteht keine Anforderung für eine hierarchische Kette von Schnittstellen, um den Begriff Superschnittstelle zu verwenden.
- 1. @SuppressWarnings Wert mit einer Anmerkung als Superschnittstelle
- 2. Methode iterator() deklariert in java.util.Collection und in java.lang.Iterable, seine Superschnittstelle?
- 3. Java-Generics: Warum kann die innere Schnittstelle nicht von einer (inneren) Superschnittstelle implementiert werden?
- 4. CGLIB nicht in der Lage, Methoden in einer Superklasse/Superschnittstelle abzufangen
- 5. implizite Super-Schnittstelle in Java?
- 6. Rufen Sie die nicht abstrakte Methode der Superschnittstelle in der konkreten Klasse auf
- 7. Java-Streams in Java 7
- 8. Eclipse Java Compiler Warnungen als ant Aufgabe
- 9. Messzeit in Java JNI (nativer Aufruf Java)
- 10. Java: Methoden wie ord PHP in Java
- 11. Java-Funktionen in Java serialisieren 8
- 12. Convert Java Servlet in Standalone-Java-Anwendung
- 13. Java instanziiert Short-Objekt in Java
- 14. Worin liegt die Diskrepanz in Java-Versionen: Java 6 (in Terminal, Eclipse) und Java 7 (in Java Control Panel)?
- 15. Assign Operator in Java
- 16. Generisches Vererbung in Java
- 17. Übergeordnete Standardcodierung in Java
- 18. MSXML-Parser in Java
- 19. Rasterung in Java
- 20. diff Implementierung in Java
- 21. Benutzerdefinierte Konvertierungsspezifikatoren in Java
- 22. blenden (kryptologie) in java
- 23. Bouncing Ball in Java
- 24. Erzeuger Verbraucher in Java
- 25. Dateierstellungsdatum ermittelt in Java
- 26. Standard-Initialisierung in Java
- 27. Objektbaum-Navigationssprache in Java
- 28. Mehrere Müllsammler in Java
- 29. Decorator in Java
- 30. Prime Factorization in Java
Ich empfehle dringend, google zu verwenden, bevor Sie Fragen dieser Art stellen. – dborba
Meinst du "super()"? Super in Java verweist auf das Basisobjekt der Klasse. – Zack
@DB, ich denke, es ist in Ordnung, grundlegende Fragen zu stellen, die auf SO nachgeschlagen werden können. Siehe http://stackoverflow.com/questions/1003841/how-do-i-move-the-turtle-in-logo von Jeff. –