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

avec Java Discussion :

Appler méthode fille défini par la classe mere dans une classe tierce


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Appler méthode fille défini par la classe mere dans une classe tierce
    Bonjour, j'ai une classe mère A et une classe B qui étends A, je voulais savoir s'il y avait un moyen d'appeler une méthode de la classe B dans une autre classe C, alors que dans cette classe C l'objet B est défini uniquement par son objet parent A. Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Hello,

    plutôt que de te demander s'il y a un moyen, pourquoi n'essaies-tu pas tout simplement ? Après tout, appeler une méthode ne se fait que d'une seule façon. Tu sauras donc vite si ça marche ou pas.

    Mais on va essayer de faire avec.

    Cette partie de phrase : "l'objet B est défini uniquement par son objet parent A" ne veut rien dire. On va donc avoir du mal à comprendre ce que tu as en tête.
    La solution c'est toujours la même : il ne faut pas parler, il faut montrer ton code.

    Mais on va essayer de deviner à quoi tu penses. J'imagine que tu penses à quelque chose qui ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class A {
     
      public void seNommerDansLaConsole() {
        System.out.println("Je suis un objet de classe A");
      }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class B extends A {
     
      @Override
      public void seNommerDansLaConsole() {
        System.out.println("Moi je suis de classe B");
      }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class C {
     
      public static void main(String[] args) {
        A a = new B();
     
        a.seNommerDansLaConsole(); // cela marche-t-il ? Cela appelle-t-il bien la méthode de la classe fille ?
      }
     
    }
    Réponses : essaie, et tu verras.

    Une fois que tu as les résultats : eh bien oui, c'est tout le principe du polymorphisme. Les classes filles peuvent redéfinir les méthodes des classes mères. Et un bout de code peut utiliser des variables du type parent, dont il se trouve, du fait d'autres parties du programme, qu'à l'exécution elles contiennent des objets de classe fille.
    Dans ce cas-là les méthodes invoquées sur ces variables, sont les méthodes redéfinies par les classes filles. C'est à ça que ça sert de redéfinir. Ça s'appelle le polymorphisme. Les objets définissent eux-mêmes leur comportement, et personne d'autre ne le fait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci, je serais plus clair la prochaine fois. Le problème est justement que je sais que c'est un objet de classe B mais la méthode n'est pas définie dans A, c'est une méthode propre à B. L'appel à la méthode dans C ne fonctionne donc pas

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu es sur que c'est un B, il suffit de faire un cast
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A a = ......
    ((B)a).methodeSpecifiqueDeB();

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ah super, merci !

Discussions similaires

  1. Réponses: 15
    Dernier message: 01/03/2015, 14h16
  2. Appel d'une méthode d'une classe A dans une classe B
    Par halloumiali dans le forum Général Java
    Réponses: 1
    Dernier message: 16/04/2012, 01h30
  3. Réponses: 15
    Dernier message: 28/04/2009, 08h26
  4. Passage d'une classe mere a une classe fille
    Par khalid_kha dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2009, 12h52
  5. Réponses: 2
    Dernier message: 02/02/2008, 08h37

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