InterfaceJava

Interfaces
Une autre façon de réaliser l’abstraction en Java consiste à utiliser des interfaces.
Un interface
est complètement « classe abstraite » qui est utilisé pour regrouper les méthodes associées avec des corps vides :
Exemple
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}
Pour accéder aux méthodes d’interface, l’interface doit être « implémentée » (un peu comme héritée) par une autre classe avec le implements
mot clé (au lieu de extends
). Le corps de la méthode d’interface est fourni par la classe « implement »:
Exemple
// Interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}
// Pig "implements" the Animal interface
class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Essayez-le vous-même »
Remarques sur les interfaces :
- Comme cours abstraitsinterfaces ne peut pas être utilisé pour créer des objets (dans l’exemple ci-dessus, il n’est pas possible de créer un objet « Animal » dans la MyMainClass)
- Les méthodes d’interface n’ont pas de corps – le corps est fourni par la classe « implémenter »
- Lors de l’implémentation d’une interface, vous devez surcharger toutes ses méthodes
- Les méthodes d’interface sont par défaut
abstract
et
public
- Les attributs d’interface sont par défaut
public
,
static
etfinal
- Une interface ne peut pas contenir de constructeur (car elle ne peut pas être utilisée pour créer des objets)
Pourquoi et quand utiliser les interfaces ?
1) Pour assurer la sécurité – masquez certains détails et affichez uniquement les détails importants d’un objet (interface).
2) Java ne supporte pas « l’héritage multiple » (une classe ne peut hériter que d’une superclasse). Cependant, cela peut être réalisé avec des interfaces, car la classe peut mettre en œuvre plusieurs interfaces.
Note: Pour implémenter plusieurs interfaces, séparez-les par une virgule (voir l’exemple ci-dessous).
Interfaces multiples
Pour implémenter plusieurs interfaces, séparez-les par une virgule :
Exemple
interface FirstInterface {
public void myMethod(); // interface method
}
interface SecondInterface {
public void myOtherMethod(); // interface method
}
class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}
class Main {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
Essayez-le vous-même »
#InterfaceJava