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 :

Deux implémentations pour une interface


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Points : 89
    Points
    89
    Par défaut Deux implémentations pour une interface
    Bonjour,

    Je vous explique mon interrogation :

    j'ai une interface A
    j'ai deux classes B, C l'implémentant

    class B implements A
    class C implements A

    maintenant, si je crée un objet truc de cette façon :

    A truc = (A) machin

    Suis-je clair?

    question subsidiaire : Comment le type de truc sera-t-il choisi?

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Pour répondre à ta question il faut répondre à celle-ci :
    - Comment à été crée (instantié) machin ?

    Car quand tu fais A truc = (A)machin tu ne crées rien du tout.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 158
    Points : 89
    Points
    89
    Par défaut
    machin est en fait le retour d'une méthode de type :

    Object maMéthode()

    donc c'est un Object...

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 171
    Points : 218
    Points
    218
    Par défaut
    Tout à fait le type réel de truc dépendra du type réel de machin.
    Mais a priori, si tu sais que machin étend A alors tu ne devrais pas avoir besoin de savoir son vrai type (B ou C). C'est le principe des interfaces : tu ne fais que ce que l'interface te permet de faire.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Si tu veux vraiment connaître le type réel d'un objet d'interface A, tu peux utiliser le test 'instanceof':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    A instanceDeMonInterface = recupInstance();
     
    if(instanceDeMonInterface instanceof B) {
       System.out.println("La classe reelle de mon objet est B");
       // Eventuellement, tu peux alors faire un cast si tu as besoin
       // de fonctions propres à B qui ne sont pas dans l'interface
    } else if(instanceDeMonInterface instanceof C) {
       System.out.println("La classe reelle de mon objet est C");
    }
    Evidemment, même si c'est techniquement possible, ce n'est pas propre.
    Donc si tu as besoin d'utiliser un code comme celui-ci, pose-toi d'abord des questions sur la conception de ton application!

    Plus d'explications dans ces cours et tutoriels pour apprendre Java : http://java.developpez.com/cours/

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

Discussions similaires

  1. Liste des implémentations d'une interface
    Par YokoSop dans le forum Langage
    Réponses: 12
    Dernier message: 07/07/2006, 23h37
  2. Réponses: 7
    Dernier message: 16/05/2006, 19h12
  3. [2D] Mini-projet : question pour une interface graphique
    Par kitsune dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 10/03/2006, 14h59
  4. Réponses: 5
    Dernier message: 23/02/2006, 00h34
  5. Composants à utiliser pour une interface graphique Java
    Par nicolas.pied dans le forum Composants
    Réponses: 4
    Dernier message: 28/11/2005, 20h27

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