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

AWT/Swing Java Discussion :

Instancier une classe fille


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut Instancier une classe fille
    bonjour à tous,

    j'ai créé une classe MyJPanel qui "extends" JPanel.



    Pour l'instancier, je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JPanel panel = new MyJPanel(...)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyJPanel panelLabel = new MyJPanel(...)

    Quelle est la différence entre ces 2 façons ?
    S'il n'y en a pas, que me conseillent les gourous du Java ?

    Merci.

    a+

  2. #2
    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 : 41
    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
    Points : 5 943
    Points
    5 943
    Par défaut
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JPanel panel = new MyJPanel();
    tu ne pourras pas appeler les méthodes que tu as ajoutées à ta classe et qui ne font pas partie de la classe JPanel à moins d'un cast explicite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    panel.nouvelleMethode(); // incorrect
    ((MyJPanel) panel).nouvelleMethode(); // correct
    Pour ce qu'il est préférable d'utiliser, cela dépend un peu de l'utilisation.

    En général il convient de favoriser le type le plus abstrait (dans ton cas JPanel).
    Ceci est surtout valable pour les retour de méthode et dans le développement d'API.
    Cependant tu peux avoir besoin des spécificités d'une implémentation et dans ce cas utiliser un type moins abstrait.

    En gros, dans la "chaine d'héritage" il faut choisir le type le plus abstrait qui réponde aux besoins.
    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

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

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Merci pour cette réponse rapide et claire.

    a+

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/04/2014, 00h16
  2. accès à une classe fille non instanciée
    Par a066043 dans le forum Langage
    Réponses: 4
    Dernier message: 06/10/2010, 14h15
  3. [PHP 5.2] [POO] Instancier une classe fille appelante depuis la classe mère
    Par loacast dans le forum Langage
    Réponses: 13
    Dernier message: 15/08/2010, 17h12
  4. Instanciation d'une classe fille depuis une classe mère
    Par khaled-benloucif dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2009, 23h59
  5. Réponses: 6
    Dernier message: 01/05/2006, 19h05

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