Maison > Java > javaDidacticiel > Les méthodes Java remplacées peuvent-elles avoir différents types de retour ?

Les méthodes Java remplacées peuvent-elles avoir différents types de retour ?

Linda Hamilton
Libérer: 2024-12-13 10:39:12
original
282 Les gens l'ont consulté

Can Java Overridden Methods Have Different Return Types?

Les méthodes remplacées peuvent-elles avoir différents types de retour ?

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() {
        ....
    }
}
Copier après la connexion

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 :

  1. Les méthodes Void peuvent être remplacé uniquement par les méthodes void.
  2. Les types de retour primitifs doivent rester les mêmes dans overrided méthodes.
  3. Pour les types de référence :

    • Le type de retour de la méthode de remplacement peut être un sous-type du type de retour de la méthode remplacée.
    • Le retour Le type peut être attribuable au type de retour de la méthode remplacée via une conversion non vérifiée.
    • Les types de retour peuvent être effacés de la même manière. type.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal