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 :

problème avec heritage en java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut problème avec heritage en java
    J'ai un petit problème avec l'héritage en java. Je prefère la pratique donc voilà un exemple.
    classe mère principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Modele extends JFrame {
       protected ArrayList quitListeners;
     
       public void addQuitListener(QuitListener listener) {
            quitListeners.add(listener);
        }
     
        public void removeQuitListener(QuitListener listener) {
            quitListeners.remove(listener);
        }
    }
    classe héritant de la classe mère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class HeritModele  extends Modele {
    }
    classe héritant de la deuxième classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class ViewSaisieReglement{
        private HeritModele parent;
     
        public View (HeritModele parent) {
            this.parent = parent;
            this.parent.addQuitListener(this);
        }
    }
    classe où se trouve le main
    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
     
    public class TestReg extends HeritModele {
    	public static void main(String[] args)
    	{
    		new TestReg();
    	}
     
    	public TestReg()
    	{
    		setTitle("Window");
    		setVisible(true);
    		buildNewSalePane();
    	}
    	private void buildNewSalePane() {
            ViewSaisieReglement sale = new ViewSaisieReglement(this);
    	switchManager(sale.buildPanel());
        }
    }
    erreur
    C:\Java\ViewSaisieReglement.java:81: cannot resolve symbol
    symbol : method addQuitListener (ViewSaisieReglement)
    location: HeritModele
    this.parent.addQuitListener(this);
    ^

    Je ne comprends pas pourquoi la méthode addQuitListener de Modele n'est pas vu dans HeritModele

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Modele extends JFrame {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class HeritModele  extends FrameModele {
    C'est normal que les noms ne correspondent pas ???

    a++

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    c'est une erreur faite lors de la copie, cela a été modifié. Le problème demeurre

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Et ViewSaisieReglement n'implémente pas l'interface QuitListener...

    a++

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    si au fait j'ai pas voulu mettre ton le code. J'ai simplement mais la partie qui pose problème
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    public class Modele extends JFrame {
       protected ArrayList quitListeners;
     
       public void addQuitListener(QuitListener listener) {
            quitListeners.add(listener);
        }
     
        public void removeQuitListener(QuitListener listener) {
            quitListeners.remove(listener);
        }
    }
     
     
    public class HeritModele  extends Modele {
     
    }
     
    public class ViewSaisieReglement implements QuitListener {
        private HeritModele parent;
     
        public View (HeritModele parent) {
            this.parent = parent;
            this.parent.addQuitListener(this);
        }
    }
     
     
    public class TestReg extends HeritModele {
    	public static void main(String[] args)
    	{
    		new TestReg();
    	}
     
    	public TestReg()
    	{
    		setTitle("Window");
    		setVisible(true);
    		buildNewSalePane();
    	}
    	private void buildNewSalePane() {
            ViewSaisieReglement sale = new ViewSaisieReglement(this);
    	switchManager(sale.buildPanel());
        }
    }
    je precise que quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class ViewSaisieReglement implements QuitListener {
        private Modele parent;
     
        public View (Modele parent) {
            this.parent = parent;
            this.parent.addQuitListener(this);
        }
    }
    ça marche

    mais quand c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class ViewSaisieReglement implements QuitListener {
        private HeritModele parent;
     
        public View (HeritModele parent) {
            this.parent = parent;
            this.parent.addQuitListener(this);
        }
    }
    là ca ne marche pas

  6. #6
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Encore une fois ton code n'est pas correct ou mal copier-coller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class ViewSaisieReglement implements QuitListener {
        private HeritModele parent;
    
        public View (HeritModele parent) {
            this.parent = parent;
            this.parent.addQuitListener(this);
        }
    }
    Donc fait de bon copier-coller ou donne nous toutes les erreurs de compilations (en essayant de les comprendre avant)

    a++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 145
    Par défaut
    En analysant le code de ton premier message, je vois le pb suivant:

    Dans la classe Modele, tu définis la méthode addQuitListener avec comme paramètre un QuitListener:
    addQuitListener(QuitListener listener)

    Dans la classe ViewSaisieReglement, tu essaye d'utiliser la méthode addQuitListener avec comme paramètre un ViewSaisieReglement:
    addQuitListener(this)

    Ce n'est donc pas la même méthode, addQuitListener(ViewSaisieReglement viewSaisieReglement) n'est pas défini dans la classe Modele.

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    351
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 351
    Par défaut
    si c'est du même type car il hérite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public class ViewSaisieReglement implements QuitListener{}

Discussions similaires

  1. problème avec web services java netbeans
    Par amanimannou dans le forum Services Web
    Réponses: 1
    Dernier message: 01/04/2011, 16h56
  2. Problème avec les vecteurs Java
    Par choko83 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/05/2008, 17h52
  3. [SDX] [XML] Problèmes avec la plateforme Java SDX
    Par mlny84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 29
    Dernier message: 18/10/2007, 12h06
  4. Gros problème avec le C++/Java
    Par astrofan dans le forum Windows
    Réponses: 9
    Dernier message: 26/05/2007, 17h31
  5. probléme avec mon code JAVA et MYSQL
    Par ulysse031 dans le forum JDBC
    Réponses: 5
    Dernier message: 10/05/2007, 00h46

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