Appel interface

Signaler
-
Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 novembre 2020
-
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

Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 novembre 2020
2 727
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.

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?
Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 novembre 2020
2 727 > 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.
>
Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 novembre 2020

Mais alors sil y a deux méthodes method1 comment l'interface sait laquelle on a besoin?
Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 novembre 2020
2 727 > 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