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 :

Netbeans warning sur classe abstraite


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Par défaut Netbeans warning sur classe abstraite
    Bonjour à tous,

    Voici mon souci.

    J'ai crée une classe abstraite contenant 2 methodes abstraites :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public abstract class A extends B
    {
        this.method1();
        this.method2();
    }
     
    public abstract void method1();
    public abstract void method2();
    Le souci, c'est que Netbeans me signale ceci :
    -Make the class A final
    -Make the method method1 "final" ou "static" ou "private"
    -(Même chose pour method2)

    Et je ne comprends pas pourquoi il me propose ces corrections.
    Je ne veux pas mettre ma classe final, de même pour les méthodes (si je l'ai mise abstraite, c'est pour être dérivable)
    Static, je ne vois pas l'intérêt.
    Private, c'est incompatible avec une méthode abstraite non ?

    Merci

  2. #2
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Salut,

    c'est ca le code que tu as mis dans ta classe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public abstract class A extends B
    {
        this.method1();
        this.method2();
    }
     
    public abstract void method1();
    public abstract void method2();
    ??

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Par défaut
    Euh non pardon merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public abstract class A extends B {
     
    public A()
    {
        this.method1();
        this.method2();
    }
     
    public abstract void method1();
    public abstract void method2();
    }
    Je sens que j'ai fait un truc minable dans le code

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ce ne sont pas des erreurs de compilation. Netbeans te donne ces conseils, parce que cette construction est un nid à bugs.

    J'explique : ces méthodes sont appelées dans le constructeur de ta classe abstraite. Ce constructeur va donc être appelé au début des constructeurs de ses classes filles. Et il va donc appeler l'implémentation de ces méthodes par ces classes filles, avant que leur initialisation ne commence. Tu avais réalisé ça ? La plupart ne le font pas, et de toute façon ça se voit pas tout de suite.
    En général, les erreurs arrivent là.

    Si ces méthodes n'étaient ni abstraites, ni redéfinissables (si elles étaient final, donc,) alors le problème n'existerait pas. D'où le conseil donné.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Par défaut
    Ok merci je comprends.
    Je me suis d'ailleurs taper un nullpointerexception après le lancement.
    Dès que je les retire de la classe, ça fonctionne.
    Le truc qui me chagrine, c'est que pour chacune des filles, j'appelle ces méthodes à leur construction.
    Vu comme je compte faire plusieurs méthodes en appliquant ce même mécanisme, c'est la raison pour laquelle je souhaite faire ceci dans la mère.
    Vous avez une alternative à me proposez ?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par helpy2 Voir le message
    Le truc qui me chagrine, c'est que pour chacune des filles, j'appelle ces méthodes à leur construction.
    Vu comme je compte faire plusieurs méthodes en appliquant ce même mécanisme, c'est la raison pour laquelle je souhaite faire ceci dans la mère.
    Vous avez une alternative à me proposez ?
    Fais qu'il n'y ait qu'une seule méthode à appeler dans le constructeur des classes filles. Cette méthode-là peut être implémentée dans la classe abstraite, puisque c'est pareil pour toutes, et reposer sur l'appel de méthodes abstraites.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Probleme sur classe abstraite argument non reconu
    Par Nono Sto dans le forum Débuter
    Réponses: 4
    Dernier message: 07/02/2011, 18h50
  2. [Conception] Héritage sur Plusieurs classes abstraites
    Par facilus68 dans le forum Langage
    Réponses: 9
    Dernier message: 20/03/2009, 13h06
  3. POO : besoin de confirmation sur classe abstraite
    Par loic20h28 dans le forum Design Patterns
    Réponses: 8
    Dernier message: 20/01/2009, 08h43
  4. [EJB3 Entity] manytomany sur classe abstraite
    Par maibey dans le forum Java EE
    Réponses: 2
    Dernier message: 17/01/2009, 14h14
  5. pb héritage sur classe abstraite et iterator
    Par black-falco dans le forum C++
    Réponses: 21
    Dernier message: 05/01/2008, 16h38

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