Appel interface

Develloppeuranonyme23 -  
KX Messages postés 19031 Statut Modérateur -
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

  1. KX Messages postés 19031 Statut Modérateur 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
    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
      1. KX Messages postés 19031 Statut Modérateur 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
      2. Develloppeuranonyme23 > KX Messages postés 19031 Statut Modérateur
         
        Mais alors sil y a deux méthodes method1 comment l'interface sait laquelle on a besoin?
        0
      3. KX Messages postés 19031 Statut Modérateur 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