IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

comment appeler une méthode de la classe grand-mère


Sujet :

Langage Java

  1. #1
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut comment appeler une méthode de la classe grand-mère
    Bonjour à tous,

    Mettons que j'ai une hiérarchie de classes :

    A,
    B hérite de A,
    C hérite de B

    Chacune de ces classes a la méthode 'void do()'

    Si je me trouve dans une méthode de la classe C ( la feuille, donc ), comment faire pour appeler la méthode ' do()' de la classe A ?

    Autrement dit, comment appeler une méthode de la classe grand-mère ?

  2. #2
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    Bonjour,
    Je comprend ce qu tu veux faire mais c'est impossible. On peut appler la méthode mère uniquement.

    Il y a sûrement un problème de conception dans tes classes. Pour vérifier si l'héritage peut être appliquer on se pose la question suivante:
    Est-ce que B EST A ?
    Est-ce que C EST B ?

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    La flemme de tester mais avec un cast explicite ça marche pas ? du genre :
    ((A)this).do();

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par iohack
    La flemme de tester mais avec un cast explicite ça marche pas ? du genre :
    ((A)this).do();
    Non, ce n'ai pas possible, c'est toujours la "dernière surcharge qui est appelée).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre expérimenté Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Par défaut
    Citation Envoyé par le y@m's
    Non, ce n'ai pas possible, c'est toujours la "dernière surcharge qui est appelée).
    bon, ok. Merci.

  6. #6
    Membre expérimenté Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Par défaut
    Citation Envoyé par iohack
    La flemme de tester mais avec un cast explicite ça marche pas ? du genre :
    ((A)this).do();
    Impossible, cela va créer une genre de boucle sans fin.

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Je suis d'accord avec g0up1l: si tu dois appeller la méthode d'une classe "grand-mère" sans appeller celle de la classe mère, c'est sûremment dû à un problème de conception
    De plus tu perds la puissance du polymorphisme.
    C'est comme l'usage des instanceOf. Même dans certains cas ils sont nécessaires, c'est généralement un pb de conception...

    Sinon, pour répondre à ta question: on ne peut pas appeller une méthode de la classe grand-mère si elle est redéfinies dans la classe mère.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment appeler une méthode public depuis une autre class
    Par Gregi dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 01/03/2010, 10h08
  2. Comment appeler une méthode père depuis la classe père
    Par Ketchup666 dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2009, 12h14
  3. Réponses: 3
    Dernier message: 15/12/2006, 16h14
  4. Réponses: 2
    Dernier message: 31/08/2005, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo