Question sur le polymorphismes
Résolu/Fermé
Creutzou
Creutzou
- Messages postés
- 550
- Date d'inscription
- lundi 17 mai 2010
- Statut
- Membre
- Dernière intervention
- 30 mai 2013
Creutzou
- Messages postés
- 550
- Date d'inscription
- lundi 17 mai 2010
- Statut
- Membre
- Dernière intervention
- 30 mai 2013
A voir également:
- Question sur le polymorphismes
- Polymorphisme - Articles
- Héritage et polymorphisme - Articles
- Optimisation - Polymorphisme “statique” - Conseils pratiques - Langage C++
- Polymorphisme java - Articles
- Java - Les objets - Articles
6 réponses
choubaka
18 mai 2011 à 17:58
- Messages postés
- 39032
- Date d'inscription
- jeudi 4 avril 2002
- Statut
- Modérateur
- Dernière intervention
- 27 juin 2022
18 mai 2011 à 17:58
Bonjour
ça me paraît correct dans le raisonnement.
le polymorphisme étant une variante dans le comportement d'un objet
ça me paraît correct dans le raisonnement.
le polymorphisme étant une variante dans le comportement d'un objet
Creutzou
18 mai 2011 à 18:01
- Messages postés
- 550
- Date d'inscription
- lundi 17 mai 2010
- Statut
- Membre
- Dernière intervention
- 30 mai 2013
18 mai 2011 à 18:01
Donc si
on pose une class mère Maman avec une méthode a.
une class fille Fille qui hérite de Maman, dans la quelle on redéfinis la méthode a.
Selon le type de l'objet, il fera appelle à la méthode de Maman ou de Fille ?
C'est bien ça ?
on pose une class mère Maman avec une méthode a.
une class fille Fille qui hérite de Maman, dans la quelle on redéfinis la méthode a.
Selon le type de l'objet, il fera appelle à la méthode de Maman ou de Fille ?
C'est bien ça ?
choubaka
18 mai 2011 à 18:07
- Messages postés
- 39032
- Date d'inscription
- jeudi 4 avril 2002
- Statut
- Modérateur
- Dernière intervention
- 27 juin 2022
18 mai 2011 à 18:07
tout dépendra de l'instance appelée
mais dans la classe fille, on peut faire appel à la méthode de la classe mère (via super) et l'étendre.
}
mais dans la classe fille, on peut faire appel à la méthode de la classe mère (via super) et l'étendre.
}
choubaka
18 mai 2011 à 18:08
- Messages postés
- 39032
- Date d'inscription
- jeudi 4 avril 2002
- Statut
- Modérateur
- Dernière intervention
- 27 juin 2022
18 mai 2011 à 18:08
il suffit d'ajouter ce qui concerne la spécialisation des classes filles au code de la classe mère.
KX
Modifié par KX le 18/05/2011 à 18:11
- Messages postés
- 16557
- Date d'inscription
- samedi 31 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 26 juin 2022
Modifié par KX le 18/05/2011 à 18:11
Imaginons que tu veuilles faire x.m() où x est un objet de la classe C.
Java va chercher dans la classe C la méthode m.
Si elle existe c'est celle-ci qui est lancée, sinon il va la chercher dans la superclasse.
Si elle existe dans la superclasse c'est celle-ci qui est lancée sinon il remonte et ainsi de suite jusqu'à trouver ou remonter à la classe Object. Si la méthode m n'existe pas tu auras une erreur.
Dans ton exemple, tu peux faire System.out.println(new Fille());
La méthode println(Object) va chercher la méthode toString dans la classe Fille, ne la trouvant pas il va chercher la méthode toString() dans la classe Mere, et comme il ne la trouvera toujours pas il utilisera la méthode toString() de la classe Object...
La confiance n'exclut pas le contrôle
Java va chercher dans la classe C la méthode m.
Si elle existe c'est celle-ci qui est lancée, sinon il va la chercher dans la superclasse.
Si elle existe dans la superclasse c'est celle-ci qui est lancée sinon il remonte et ainsi de suite jusqu'à trouver ou remonter à la classe Object. Si la méthode m n'existe pas tu auras une erreur.
Dans ton exemple, tu peux faire System.out.println(new Fille());
La méthode println(Object) va chercher la méthode toString dans la classe Fille, ne la trouvant pas il va chercher la méthode toString() dans la classe Mere, et comme il ne la trouvera toujours pas il utilisera la méthode toString() de la classe Object...
La confiance n'exclut pas le contrôle
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Creutzou
18 mai 2011 à 18:14
- Messages postés
- 550
- Date d'inscription
- lundi 17 mai 2010
- Statut
- Membre
- Dernière intervention
- 30 mai 2013
18 mai 2011 à 18:14
D'accord, je commence un peu à y voir. Même si cela reste encore très flou.
Comme il disait, c'est en Sciant que Leonard devin sci :)
En tout cas merci à vous.
Comme il disait, c'est en Sciant que Leonard devin sci :)
En tout cas merci à vous.
Creutzou
19 mai 2011 à 09:56
- Messages postés
- 550
- Date d'inscription
- lundi 17 mai 2010
- Statut
- Membre
- Dernière intervention
- 30 mai 2013
19 mai 2011 à 09:56
Après une bonne nuit de sommeil, et une re-lecture, ça m'a l'air plus clair.
Je vous remercie grandement.
Thomas
Je vous remercie grandement.
Thomas