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 :

instance d'interface ?


Sujet :

Langage Java

  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut instance d'interface ?
    Bonjour,

    une interface n'est pas instanciable puisqu'elle comprend des méthodes non implémentées, alors pouquoi lorsque je déclare un tableau du type de mon interface je peux l'instancier ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            //Normal ne marche pas
            NewInterface test;
            test  = new NewInterface();
     
     
           //L'instance fonctionne ?
            NewInterface[] test;
            test  = new NewInterface[5];
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Tu n'instancies pas un tableau de type NewInterface mais un tableau de taille 5 qui va contenir des objets implémentant NewInterface.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    Car tu instancie un tableau ... et non des interfaces ^^

    Tu instancie un tableau qui contient ici 5 valeur "null".
    Ce tableau destiné a recevoir des objets de type "NewInterface".
    Mais tu n'a crée aucun objet "NewInterface" par cette commande

    Voila

    EDIT : grilled....

  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
    Salut,


    C'est normal, tout comme tu peux utiliser le type de l'interface comme variable/paramètre/attribut...

    A noter que lorsque tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewInterface[] test = new NewInterface[5];
    Tu n'a aucune instance de l'interface mais seulement un tableau de 5 éléments null !

    On peut très bien obtenir une instance d'une interface, mais dans ce cas là on a en réalité une instance d'une classe qui implémente l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class NewClass implements NewInterface {
       ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NewInterface[] test = new NewInterface[5];
    for (int i=0; i<test.length; i++) {
        test[i] = new NewClass();
    }
    De même que tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewInterface test = new NewClass();
    C'est tout l'intérêt des interfaces : tu manipules des interfaces sans connaitre leurs implémentations précises

    a++

    [edit] légèrement grillé

  5. #5
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    tableau de taille 5 qui va contenir des objets implémentant NewInterface
    OK maintenant comprends


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     NewInterface test;
    test  = new NewInterface();
    est impossible car mon objet test veut être une instance de l'interface

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

Discussions similaires

  1. Changer l'interface d'une instance d'un métamodèle
    Par Jihane22 dans le forum Eclipse Modeling
    Réponses: 9
    Dernier message: 30/07/2010, 19h43
  2. Comment noter en "deprecated" une instance d'interface COM ?
    Par Mike@Nestor dans le forum Visual C++
    Réponses: 3
    Dernier message: 06/11/2009, 14h41
  3. Lister les instances d'une interface
    Par maxperchus dans le forum C#
    Réponses: 2
    Dernier message: 02/05/2008, 19h57
  4. Réponses: 4
    Dernier message: 07/05/2007, 21h38
  5. [SQL SERVER] Interface réseau dédiée à chaque instance
    Par Damdew dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/05/2006, 18h29

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