Appel interface

Fermé
Develloppeuranonyme23 - 13 nov. 2020 à 13:48
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 14 nov. 2020 à 19:29
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
13 nov. 2020 à 16:14
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
13 nov. 2020 à 16:27
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019 > Develloppeuranonyme23
13 nov. 2020 à 17:15
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024
14 nov. 2020 à 19:12
Mais alors sil y a deux méthodes method1 comment l'interface sait laquelle on a besoin?
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019 > Develloppeuranonyme23
14 nov. 2020 à 19:29
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