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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-30 13:12:11567parcourir

Can Overridden Methods in Java Have Different Return Types?

Méthodes remplacées et écart du type de retour

Les méthodes remplacées peuvent-elles différer dans le type de retour ?

La prise en charge par Java des types de retour covariants permet aux méthodes remplacées de posséder des types de retour plus spécifiques que les méthodes qu'elles utilisent. override.

Le type de retour de la méthode remplacée doit être attribuable au type de retour de la méthode remplacée. Par exemple :

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

class CircleBuilder extends ShapeBuilder{
    ...
    @Override
    public Circle build() {
    ....
}

Conformément à la spécification du langage Java (section 8.4.5), la substituabilité des types de retour est autorisée si :

  • Les types de retour sont des types de référence, avec R1 (type de retour de la méthode remplacée) étant soit un sous-type de R2 (type de retour de la méthode remplacée) ou convertible en un sous-type via décoché conversion.
  • R1 est l'effacement de R2 (suppression des paramètres de type).

Comportement hérité (Java 5 et avant)

Avant dans Java 5, les méthodes remplacées avaient des types de retour invariants, ce qui signifie qu'elles devaient correspondre au type de retour de la méthode remplacée exactement.

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!

Déclaration:
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