[JAVA] Héritage
Résolu/Fermé
JulienZ
Messages postés
42
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
22 avril 2009
-
15 août 2007 à 21:23
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 15 janv. 2009 à 23:37
k-23 Messages postés 252 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 25 novembre 2014 - 15 janv. 2009 à 23:37
A voir également:
- Cheick yvan formate héritage
- Cheick yvan format - Forum Vos droits sur internet
- EXCEL 2010 format commentaire manque d'attribut ? - Forum Excel
- Format téléphone PDF - Forum PDF
- Que du fake formate héritage ✓ - Forum Vos droits sur internet
- Formate pour taxer connexion internet ✓ - Forum Matériel & Système
5 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 août 2007 à 16:48
16 août 2007 à 16:48
Autre chose: pourquoi super.rayon?
Dans une instance de SousCercle, il ya un attribut rayon qui est hérité de cercle mais qui est propre à l'instance courante de SousCercle. Utilise plutôt this.rayon.
Le super sert surtout pour appeler des méthodes du parent. En fait c'est utilisé en cas de redéfintion de méthode pour exécuter ce qu'aurait fait le parent tout en rajoutant du code plus spécialisé.
Tiens, un exemple:
Voilà, en gros, le super sert à compléter l'implémentation du parent. Mais pour l'accés aux attributs d'instance c'est inutile.
Dans une instance de SousCercle, il ya un attribut rayon qui est hérité de cercle mais qui est propre à l'instance courante de SousCercle. Utilise plutôt this.rayon.
Le super sert surtout pour appeler des méthodes du parent. En fait c'est utilisé en cas de redéfintion de méthode pour exécuter ce qu'aurait fait le parent tout en rajoutant du code plus spécialisé.
Tiens, un exemple:
class Medecin { public quiSuisJe() { System.out.println("Je suis un médecin"); } } class Pediatre extends Medecin() { public quiSuisJe() { super.quiSuisJe() System.out.println("Et je soigne les enfants"); } } class MonProgramme { public static void main(String[] args) { Medecin m = new Pediatre(); m.quiSuisJe(); //Affiche: Je suis médecin Et je soigne les enfants. } }
Voilà, en gros, le super sert à compléter l'implémentation du parent. Mais pour l'accés aux attributs d'instance c'est inutile.
Bj0
Messages postés
74
Date d'inscription
mercredi 25 avril 2007
Statut
Membre
Dernière intervention
5 octobre 2007
21
16 août 2007 à 13:46
16 août 2007 à 13:46
a premiere vu ton code me parais pas mal ... peu tu nous mettre le ou les messages d'erreurs que tu a lors de la compilation?
JulienZ
Messages postés
42
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
22 avril 2009
4
16 août 2007 à 15:36
16 août 2007 à 15:36
Salut
Les erreurs que j'obtient sont situées dans la classe SousCercle sur chacun de mes trois constructeurs il me met : Constructor call must be the first statement in a constructor.
Merci beaucoup de votre aide
Julien
Les erreurs que j'obtient sont situées dans la classe SousCercle sur chacun de mes trois constructeurs il me met : Constructor call must be the first statement in a constructor.
Merci beaucoup de votre aide
Julien
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
16 août 2007 à 16:25
16 août 2007 à 16:25
public void SousCercle() public void SousCercle(float rayon) public void SousCercle(float rayon, float sousRayon)
Attention, un constructeur n'a pas de type, pas même void.
Faut transformer ces trois trucs là en:
public SousCercle() public SousCercle(float rayon) public SousCercle(float rayon, float sousRayon)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
JulienZ
Messages postés
42
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
22 avril 2009
4
16 août 2007 à 17:22
16 août 2007 à 17:22
Merci beaucoup. Je vais continuer à m'entraîner la dessus.
;)
Julien
;)
Julien
15 janv. 2009 à 23:14
tu met le m
merci de répondre
15 janv. 2009 à 23:33
Puis je fais m.quiSuisJe() pour executer sa méthode. Si j'avais fait quiSuisJe() sans le m. ça n'aurait pas eu de sens, on ne peut pas appeller de méthode d'un objet alors qu'on a instancié aucun objet, car cette méthode peut faire référence à des variables dont les valeurs seront propres à l'objet en question.
Par exemple si j'ai deux objets m et n de type Pediatre, il n'est pas dit que la variable "age" aura la même valeur pour les deux. Deux pédiatre peuvent ne pas avoir le même âge.
Tu vois ce que je veux dire?
Je peux te faire un exemple si tu veux.
15 janv. 2009 à 23:37
merci