Maison > Java > javaDidacticiel > Pourquoi ne pouvons-nous pas utiliser des « impléments » pour les limites des paramètres de type dans les génériques Java ?

Pourquoi ne pouvons-nous pas utiliser des « impléments » pour les limites des paramètres de type dans les génériques Java ?

DDD
Libérer: 2024-11-02 03:40:30
original
1086 Les gens l'ont consulté

Why Can't We Use

Différences liées aux supertypes dans les génériques Java

En Java, lors de la définition des limites des paramètres de type, vous avez peut-être remarqué la présence de « étend » mais pas les « instruments ». Cette disparité a suscité la curiosité de comprendre pourquoi c'est le cas.

Pourquoi aucun «implémente T» ?

Contrairement à «étend», qui indique une relation de supertype où le La sous-classe partage la même interface, « implémente » désigne une relation d'implémentation dans laquelle la classe implémente les méthodes spécifiées par l'interface. Cette distinction devient apparente lors de la compilation.

Considérons l'exemple ci-dessous :

<code class="java">interface C {}
class A<B extends C> {} // Allowed
class A<B implements C> {} // Not allowed</code>
Copier après la connexion

Dans le premier exemple, le paramètre de type B est délimité par la classe C utilisant "extends". Cela permet à B d'être égal à ou une sous-classe de C. Dans le deuxième exemple, "impléments" est utilisé, ce qui permet uniquement à B d'être une interface implémentant C. Cependant, les paramètres de type ne peuvent pas spécifier d'interfaces d'implémentation.

Raison de "étend T"

Le langage de contraintes générique de Java se concentre sur les relations de supertype. "extends" vous permet de restreindre un paramètre de type à une superclasse ou une interface spécifique, garantissant que le type sera toujours attribuable à ce supertype. Cela maintient les principes de sécurité des types et d'héritage en Java.

D'un autre côté, les « impléments » ne correspondent pas à ce paradigme car ils définissent une relation d'implémentation plutôt qu'une relation de supertype. Par conséquent, "étend" est l'option privilégiée et unique pour définir des limites sur les paramètres de type.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal