Appel interface

Develloppeuranonyme23 -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
En java, comment fait on pour appeler la méthode dune interface si on ne peux pas l'instancier?
Merci davance pour votre réponse,
Develloppeuranonyme23

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Si la méthode est static tu peux l'appeler directement (comme pour une classe), sinon c'est qu'elle appartient à un objet, donc il faut instancier une classe qui implémente cette interface.
1
Develloppeuranonyme23
 
Donc je crée par exemple une interface avec les méthodes metode1() et metode2(), je crée un classe qui l'implemente et qui propose la metode1(), je crée un objet de son type, je crée une autre classe qui propose metode2(), dans le main je met
Classe1 objet=new Classe1();
Objet.metode2();
et ça marche?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > Develloppeuranonyme23
 
Si tu implémentes l'interface avec les méthodes metode1() et metode2() tu es obligé que la classe qui l'implémente propose les deux méthodes, tu ne peux pas avoir une classe qui implémente que metode1 et une autre classe qui implémente que metode2, ou alors ce seront des classes abstraites, mais ça ne fait que reporter le problème car on ne peut pas instancier d'objet d'une classe abstraite.
0
Develloppeuranonyme23 > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
Mais alors sil y a deux méthodes method1 comment l'interface sait laquelle on a besoin?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > Develloppeuranonyme23
 
Une interface c'est juste un contrat qui impose des méthodes à implémenter dans la classe, mais en soit l'interface ne fait rien et n'a besoin de rien.

interface Toto {
    int methode1();
    int methode2();
}

class Tata implements Toto {
    int methode1(){
        return 1;
    }
    int methode2(){
       return 2;
    }
}

Toto toto = new Tata();
int n1 = toto.methode1(); // n1 = 1
0