Interface en Java

Comme une classe, une interface peut avoir des méthodes et des variables, mais les méthodes déclarées dans une interface sont par défaut abstraites (uniquement la signature de méthode, pas de corps).
 
 
Différence entre une interface et une classe:

  • Une interface peut contenir un nombre illimité de méthodes.
  • Vous ne pouvez pas instancier une interface.
  • Une interface ne contient aucun constructeur.
  • Toutes les méthodes d’une interface sont abstraites.
  • Une interface ne peut pas contenir des champs. Les seuls champs pouvant apparaître dans une interface doivent être déclarés à la fois static et final.
  • Une interface n’est pas héritée par une classe, elle est implémentée par une classe.
  • Une interface peut étendre plusieurs interfaces.

 

Exemple :
interface MyInterface {
  public void a(); // méthode d'interface (n'a pas de corps)
  public void b(); 
  public void c(); 
}

Pour accéder aux méthodes dans l’interface, l’interface doit être implémentée par une autre classe avec le mot-clé « implements ». Le corps de la méthode dans l’interface est fourni par la classe qui implémente cette interface:

class MaClasse implements MyInterface {
  public void a() {
    // Le corps de la méthode est fourni ici
    System.out.println("La méthode a.");
  }
  public void b() {
    System.out.println("La méthode b.");
  }
  public void c() {
    System.out.println("La méthode c.");
  }
}

class ClassMain {
  public static void main(String[] args) {
    MaClasse obj = new MaClasse(); 
    obj.a();
    obj.b();
    obj.c();
  }
}

Sortie:

La méthode a.
La méthode b.
La méthode c.

 
 

Interfaces multiples

Pour implémenter plusieurs interfaces, séparez-les par une virgule:

interface Interface1 {
  public void methode1(); 
}

interface Interface2 {
  public void methode2();
}

class MaClasse implements Interface1, Interface2 {
  public void methode1() {
    System.out.println("La méthode 1.");
  }
  public void methode2() {
    System.out.println("La méthode 2.");
  }
}

class ClassMain {
  public static void main(String[] args) {
    MaClasse obj = new MaClasse(); 
    obj.methode1();
    obj.methode2();
  }
}

Sortie:

La méthode 1.
La méthode 2.
QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *