9
votes

Java - Erreur: Le type de retour est incompatible

J'apprends Java. J'essayais d'exécuter le code, où j'ai eu cette erreur: Le type de retour est incompatible . Une partie du code où elle m'a montré une erreur. XXX

Pourquoi cela se produit?


0 commentaires

5 Réponses :


13
votes

Ceci est parce que nous ne pouvons pas avoir deux méthodes dans des classes qui ont le même nom mais des types de retour différents.

La sous-classe ne peut pas déclarer une méthode avec le même nom d'une méthode déjà existante dans la super classe avec un type de retour différent.

Cependant, la sous-classe peut déclarer une méthode avec la même signature que dans Super Class. Nous appelons cela "primordial".

Vous devez avoir ceci, xxx

ou xxx p > Une bonne pratique consiste à marquer les méthodes écrasées par annotation @override : xxx


0 commentaires

2
votes

Si B code> étend a code> alors vous pouvez remplacer les méthodes (comme manger code>), mais vous ne pouvez pas modifier leurs signatures. Donc, votre classe B code> doit être

 class B extends A {
        public void eat() { }
 }


0 commentaires

2
votes

B étend un doit être interprété comme B est un A.

Si la méthode de A est ne renvoie rien, B devrait faire la même chose.


0 commentaires

2
votes

Lorsqu'un procédé de sous-classe a le même nom et les mêmes arguments (leurs types, numéro et ordre) comme méthode de superclasse, le procédé de sous-classe remplace celui de la superclasse.

Maintenant pour que le type de retour de la méthode de la sous-classe doit se conformer à celui de la méthode de la superclasse. Ceci est possible uniquement si le type de retour de la méthode de sous-classe est covariant avec celui de la méthode en superclasse.

car, booléen (lecture: boolean n'est pas sous-type de vide ), le compilateur augmente le "type de retour incompatible "Erreur.


0 commentaires

0
votes

Ce n'est ni surcharger ni remplacer. Nous ne pouvons pas surcharger sur le type de retour et nous ne pouvons pas remplacer différents types de retour différents (à moins que ce ne soient convaincus, WEF Java 1.5).


0 commentaires