Maison > Java > javaDidacticiel > Quand les méthodes de remplacement en Java peuvent-elles avoir différents types de retour ?

Quand les méthodes de remplacement en Java peuvent-elles avoir différents types de retour ?

Barbara Streisand
Libérer: 2024-12-02 19:03:14
original
327 Les gens l'ont consulté

When Can Overriding Methods in Java Have Different Return Types?

Types de retour covariants dans le remplacement de méthode

Les méthodes de remplacement en Java peuvent différer dans leurs types de retour, à condition que certaines conditions soient remplies. Plus précisément, Java prend en charge les types de retour covariants, permettant à une méthode de remplacement d'avoir un type de retour plus spécifique que la méthode qu'elle remplace.

Selon la section 8.4.5 de la spécification du langage Java (JLS), cela est autorisé tant que car les règles suivantes sont respectées :

  • Si la méthode d'origine renvoie void, la méthode de substitution doit également renvoyer void.
  • Si la méthode d'origine renvoie un type primitif, la méthode de substitution doit renvoyer le même type primitif.
  • Si la méthode d'origine renvoie un type de référence :

    • Le type de retour de la méthode de remplacement doit être un sous-type du type de retour de la méthode d'origine.
    • Vous pouvez également utiliser le type de retour de la méthode de remplacement. le type de retour de la méthode peut résulter d'une conversion non vérifiée du type de retour de la méthode d'origine, ou
    • Le type de retour de la méthode de remplacement peut être l'effacement du type de retour de la méthode d'origine (après la suppression des paramètres de type génériques).

Par exemple, considérons le code suivant :

class ShapeBuilder {
    ...
    public Shape build() {
        ....
    }
}

class CircleBuilder extends ShapeBuilder{
    ...
    @Override
    public Circle build() {
        ....
    }
}
Copier après la connexion

Dans cet exemple, le La méthode build() dans CircleBuilder remplace la méthode build() dans ShapeBuilder. Le type de retour de la méthode substituée est Shape, tandis que le type de retour de la méthode substituée est Circle, qui est un sous-type de Shape. Ceci est autorisé par la règle des types de retour covariants de Java.

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