J'apprends Java. J'essayais d'exécuter le code, où j'ai eu cette erreur: Pourquoi cela se produit? P> P> Le type de retour est incompatible code>.
Une partie du code où elle m'a montré une erreur.
5 Réponses :
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. P>
Cependant, la sous-classe peut déclarer une méthode avec la même signature que dans Super Class. Nous appelons cela "primordial". P>
Vous devez avoir ceci, p> ou p> @override code>: p>
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() { }
}
Si la méthode de A est ne renvoie rien, B devrait faire la même chose. P> B étend un code> doit être interprété comme B est un A. p>
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. P>
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 fort> avec celui de la méthode en superclasse. P>
car, booléen (lecture:
boolean code> n'est pas sous-type de
vide code>), le compilateur augmente le "type de retour incompatible "Erreur. P>
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). P>