Heim > Java > javaLernprogramm > Warum ist „erweitert T' zulässig, aber nicht „implementiert T' in Typparametergrenzen?

Warum ist „erweitert T' zulässig, aber nicht „implementiert T' in Typparametergrenzen?

Linda Hamilton
Freigeben: 2024-11-02 11:52:02
Original
1001 Leute haben es durchsucht

Why is

Warum ist „erweitert T“ zulässig, aber nicht „implementiert T“ in Typparametergrenzen?

In Java beim Definieren von Grenzen für den Typ Parameter können Sie „erweitert T“ verwenden, aber nicht „implementiert T“. Dies mag wie eine willkürliche Unterscheidung erscheinen, hat aber einen bestimmten Grund, der in der Java-Generika-Implementierung liegt.

Der Grund für diesen Unterschied liegt in der Semantik von Vererbung und Implementierung. In Java kann eine Klasse nur eine Schnittstelle implementieren, aber mehrere Klassen erweitern. Daher ermöglicht die Verwendung von „extends“ in Typparametergrenzen mehr Flexibilität bei der Angabe der zulässigen Typen.

Beispiel:

Bedenken Sie den folgenden Code:

<code class="java">public interface C {}
public class A<B extends C> {}</code>
Nach dem Login kopieren

Wenn wir „Implementierungen“ in Typparametergrenzen zulassen würden, wäre dieser Code gültig. Allerdings würde sich die Frage stellen, welche Schnittstelle die Klasse B implementieren soll. Da mehrere Schnittstellen in diesem Zusammenhang nicht unterstützt werden, würde dies zu Mehrdeutigkeiten führen.

Andererseits stellt die Verwendung von „extends“ in der Grenze sicher, dass die Klasse B ein Untertyp der Schnittstelle C sein muss. Dies ist der Fall eine allgemeinere Einschränkung, die keine Mehrdeutigkeit mit sich bringt.

Durch die Einschränkung der Verwendung von „extends“ in Typparametergrenzen für Schnittstellen stellt Java daher die Konsistenz und Klarheit seiner generischen Implementierung sicher.

Das obige ist der detaillierte Inhalt vonWarum ist „erweitert T' zulässig, aber nicht „implementiert T' in Typparametergrenzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage