public decrisToi() {
String str = super.decrisToi() + "text bla bla";
// Le reste ne me pose pas de probleme
}
Du coup, quand on utilise "super" sur une méthode venant d'une classe mère, est-ce qu'on ne prend que le return de cette méthode ? Cela veut dire qu'un void n'aurait pas fonctionné ici ? Comment cela devrait fonctionner sur un static par exemple ?
La méthode vient d'une autre class et retourne un String.
J'ai du mal à comprendre tes questions, et je pense que c'est un peu confus pour toi, car tu n'utilises pas les bons termes.
Quand on a une relation d'héritage entre deux classes, la classe fille hérite de toutes les méthodes de la classe mère. Si tu surcharges une méthode dans la classe fille, comme ici decrisToi, tu as maintenant deux méthodes avec le même nom.
Pour appeler une méthode, la syntaxe est
nomDObjet.nomDeMethode
Pour appeler celle de la classe fille sur l'objet courant (this), on utilise this.decrisToi ou juste decrisToi (syntaxe raccourcie).
Pour appeler celle de la classe mère sur l'objet courant (this), on utilise super.decrisToi.
Ici, on peut dire que super représente l'objet courant limité à sa version "classe mère".
Ca fonctionne exactement comme n'importe quelle autre méthode.
Dans ton cas précis, cette méthode est appelée dans une expression. C'est sa valeur de retour qui va être utilisée pour calculer le résultat (str).
Forcément, on ne peut pas utiliser une fonction qui ne retourne rien (void) dans une expression.
Pour les méthodes statiques, on utilise juste le nom de la classe puisqu'elles ne sont pas liées à un objet.
Merci brubru777, effectivement, j'utilise pas bien les termes Java
Ma question était pour un héritage mère-fille, je sais que pour hériter d'un constructeur ou d'une méthode de classe, on peut utiliser le tag "super()" et cela marche bien dans l'exemple où la méthode qui donne son héritage est public et typé (avec un return donc).
Je voulais savoir comment marche exactement le fameux tag "super()" et si on pouvais utiliser l'héritage avec une méthode void dans le cas où on voudrais juste rajouter quelques trucs dans la méthode héritée.
Donc, si je comprends bien, une méthode de la classe mère en void ne peut pas être donner d'héritage ... Okay
Je te remercie @brubru777, car malgré tout, tu m'as certes ajouté des questions mais tu les as répondus en même temps (trop fort)
Vous êtes tous les meilleurs. Je dormirai mieux ce soir xD
Merci
[Lucas ESPINAR] -:- Shaya -:-
Le tag "super()
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
[Lucas ESPINAR] -:- Shaya -:-
[Lucas ESPINAR] -:- Shaya -:-
[Lucas ESPINAR] -:- Shaya -:-
[Lucas ESPINAR] -:- Shaya -:-