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

Java Discussion :

Classe mere, ou classe fille ?


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Classe mere, ou classe fille ?
    Bonjour,

    Je me pose une question toute bete à laquelle je n'ai jamais eu la reponse
    Est il possible, dans une instance de classe fille, d'appeler soit les methodes de la classe mere, soit les methodes de la classe fille, à partir d'une autre classe. (Donc via autre chose que super ou this)

    Un exemple pour que ce soit plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    class Mere {
    	public void action() {
    		System.out.println("je suis la mere");
    	}
    }
     
    class Fille extends Mere {
    	@Override
    	public void action() {
    		System.out.println("je suis la fille");
    	}
    }
     
    public class test {
    	public static void main(String[] args) {
     
    	Fille fille = new Fille();
     
    	//cas 1 : affichage de "je suis la fille"
    	fille.action();
    	//cas 2 : affichage de "je suis la mere"
    	????? <- c'est la que ça coince :o *honte*
    	}
    }
    Merci

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Flowers Voir le message
    Est il possible, dans une instance de classe fille, d'appeler soit les methodes de la classe mere, soit les methodes de la classe fille, à partir d'une autre classe.
    Non ce n'est pas possible. Si tu as besoin d'appeler les deux méthodes cela veut dire que ta conception est incorrect : tu ne devrait pas redéfinir action() dans la classe fille mais bel et bien créer une nouvelle méthode.

    Citation Envoyé par Flowers Voir le message
    edit : Grumf, au passage, à deplacer dans general java (je sais pas pourquoi ça a atteri dans XML )
    Fait

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par adiGuba Voir le message

    Non ce n'est pas possible. Si tu as besoin d'appeler les deux méthodes cela veut dire que ta conception est incorrect : tu ne devrait pas redéfinir action() dans la classe fille mais bel et bien créer une nouvelle méthode.
    Ok, c'est bien ce qui me semblait. Il me semble que c'est possible en c++, grace aux dynamics casts, mais pas en java

    Merci

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flowers Voir le message
    Il me semble que c'est possible en c++, grace aux dynamics casts, mais pas en java
    Et à cause de l'héritage multiple et du fait que les méthodes ne sont pas virtuelles par défaut...

    L'approche objet du C++ est bien différente de celle de Java.

    Sinon qu'est-ce qui t'empêche d'ajouter une méthode dans la classe fille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class Fille extends Mere {
    	@Override
    	public void action() {
    		System.out.println("je suis la fille");
    	}
     
    	public void defaultAction() {
    		super.action();
    	}
    }
    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Vi, c'est tout à fait possible de mettre une defaultAction, mais c'est justement ce que je voulais eviter :p

    Merci

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 14/02/2012, 13h57
  2. Réponses: 4
    Dernier message: 09/11/2010, 11h34
  3. class pour table + class pour td = class td non fonctionnelle ?
    Par supergrey dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/05/2009, 08h13
  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, 11h52
  5. Mapping classe mere - sauvegarde classe fille
    Par Calim dans le forum Hibernate
    Réponses: 5
    Dernier message: 17/01/2007, 11h23

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