POO mot clé super
Fermé
isimienne
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
-
30 mars 2011 à 00:00
isimienne Messages postés 95 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 10 juin 2015 - 30 mars 2011 à 14:52
isimienne Messages postés 95 Date d'inscription jeudi 3 décembre 2009 Statut Membre Dernière intervention 10 juin 2015 - 30 mars 2011 à 14:52
A voir également:
- Super poo
- Super copier - Télécharger - Gestion de fichiers
- Pc super lent - Guide
- Super zoom google maps - Guide
- Super email validator v43 - Télécharger - Mail
- Super screen recorder - Télécharger - Capture d'écran
2 réponses
pour appeller une méthode de la classe mère que tu as rédéfinie : super(arguments..) comme une méthode normale
Edwyn
Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
14
30 mars 2011 à 12:53
30 mars 2011 à 12:53
Bonjour,
Pour te lancer dans des exercice d'application, il te faut choisir un langage car l'héritage n'est pas tout à fait le même selon le langage object. Par exemple en Java tu peux hériter d'une seul class mais implémenter plusieurs interfaces alors qu'en C++ l'héritage multiple est autorisé.
Puis tu entends quoi par "masquage" ? la visibilité des champs et fonctions membres ? si c'est cela encore une fois il y a des petites différence selon le langage.
Cordialement,
Pour te lancer dans des exercice d'application, il te faut choisir un langage car l'héritage n'est pas tout à fait le même selon le langage object. Par exemple en Java tu peux hériter d'une seul class mais implémenter plusieurs interfaces alors qu'en C++ l'héritage multiple est autorisé.
Puis tu entends quoi par "masquage" ? la visibilité des champs et fonctions membres ? si c'est cela encore une fois il y a des petites différence selon le langage.
Cordialement,
isimienne
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
6
30 mars 2011 à 13:04
30 mars 2011 à 13:04
je veux exos en java ; et le masquage je crois c'est faire redéfinir une méthode dans la classe dérivé (cet méthode porte le même nom que celle de la classe mère ) donc de ce fait elle devient masqué ! ça ce mon idée à revérifier :)
et merci :))
et merci :))
Edwyn
Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
14
Modifié par Edwyn le 30/03/2011 à 14:11
Modifié par Edwyn le 30/03/2011 à 14:11
Ok alors en fait, si je me trompe pas ;) , le fait de redefinir une methode dans une classe fille s'appelt le polymorphisme d'héritage. Au run-time, quand tu appel une methode d'une classe, ton programme va vérifier le type réel de ta class et si elle redéfini la méthode appelé. (en fait le linkage de la méthode est fait à l'execution).
Un test tres simple serait de créer une
et de dériver 2 classes avec une redéfinition de la methode
Quand le chien mange il dit : "Dog eat !"
Quand le chat mange il dit : "Cat eat !"
apres tu crée un chien, un chat et un annimal:
et tu execute pour chaqu'un la methode eat() et tu verra ce qui s'affichera.
Puis tu peux t'amuser a utiliser super dans ces methode pour voir comment ça marche.
Cordialement,
Un test tres simple serait de créer une
class Animalqui possède une methode
void eat() // print "eat !"
et de dériver 2 classes avec une redéfinition de la methode
void eat() class dog class cat
Quand le chien mange il dit : "Dog eat !"
Quand le chat mange il dit : "Cat eat !"
apres tu crée un chien, un chat et un annimal:
Animal cat = new Cat(); Animal dog = new Dog(); Animal animal = new Animal();
et tu execute pour chaqu'un la methode eat() et tu verra ce qui s'affichera.
Puis tu peux t'amuser a utiliser super dans ces methode pour voir comment ça marche.
Cordialement,
isimienne
Messages postés
95
Date d'inscription
jeudi 3 décembre 2009
Statut
Membre
Dernière intervention
10 juin 2015
6
30 mars 2011 à 14:52
30 mars 2011 à 14:52
merci :)
30 mars 2011 à 12:33
super.attribut
super.methode
et est ce que cet écriture est équivalente à super : ((nomdeclasse)this).méthode()
exemple ((B)this).m();
30 mars 2011 à 12:40
Pour l'équivalence, ça dépend du langage en Java cela va appeler la methode du fils car il va allé chercher au plus bas de l'arbre d'héritage (je veuxc dire le type réel de l'objet).
En C++ si tu appel une methode cela ne va pas marcher mais si tu appel un fonction membre, alors oui.
L'utilisation de super te permet d'appeler la methode du parent.
Cordialement,
30 mars 2011 à 12:46
SVP avez vous quelques exercices applicatifs sur cet notion d'héritage et masquage et merci d'avance :)