Question :
En Java, pourquoi "étend T" autorisé pour définir les limites des paramètres de type, mais les "impléments T" ne sont pas autorisés ?
Par exemple, le code suivant est interdit :
<code class="java">public interface C {} public class A<B implements C> {}</code>
Tant que ce code est valide :
<code class="java">public class A<B extends C> {}</code>
Réponse :
Sémantiquement, il n'y a pas de distinction entre « étend » et « implémente » dans le langage de contrainte générique. Les possibilités de contraintes sont limitées à "extends" et "super", reflétant le sens de l'héritage ou la compatibilité des affectations.
Dans le Dans le cas de l'exemple de code invalide, il tente d'utiliser "implements" pour définir une contrainte sur le paramètre de type B. Cependant, "implements" n'est pas un type de contrainte valide et n'est donc pas autorisé.
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!