Les méthodes remplacées en Java ont la flexibilité de varier dans les types de retour, suivant le principe des types de retour covariants. Cela signifie qu'une méthode de substitution peut renvoyer un type de données plus spécifique que celui déclaré dans la méthode de substitution.
Pour illustrer, considérons l'exemple suivant :
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
Dans ce scénario, bien que ShapeBuilder La méthode build() renvoie un objet Shape, la méthode build() de substitution de CircleBuilder renvoie un objet Circle, qui est un type plus spécialisé qui étend Shape. Ceci est autorisé car Circle peut être attribué à Shape.
Les types de retour covariants respectent la section 8.4.5 de la spécification du langage Java, qui décrit les règles suivantes :
Pour les types de référence :
Avant Java 5, Java imposait des types de retour invariants, exigeant que le type de retour des méthodes remplacées corresponde précisément à la méthode remplacée.
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!