Le mot-clé interface en Java est utilisé pour déclarer un type spécial de classe qui ne contient que des méthodes abstraites, des méthodes par défaut, des méthodes statiques et des variables finales. Les interfaces permettent de réaliser l'abstraction et l'héritage multiple en Java.
Utilisation
Les interfaces sont utilisées pour spécifier un ensemble de méthodes qu'une classe doit implémenter. Ils sont particulièrement utiles pour définir un contrat auquel plusieurs classes peuvent adhérer, en s'assurant qu'elles fournissent des fonctionnalités spécifiques.
Syntax
interfaceInterfaceName{// constant fields// abstract methods// default methods// static methods}Propulsé par
InterfaceName: Le nom de l'interface.
Champs constants : Les champs déclarés dans une interface sont implicitement public, static, et final.
Méthodes abstraites : Méthodes sans corps qui doivent être implémentées par les classes qui implémentent l'interface.
Méthodes par défaut : Méthodes avec un corps qui fournissent une implémentation par défaut.
Méthodes statiques : Méthodes avec un corps qui appartiennent à la classe d'interface elle-même.
Exemples
Exemple 1 : Interface de base
interfaceAnimal{voideat();voidsleep();}classDogimplementsAnimal{publicvoideat(){
System.out.println("Dog is eating");}publicvoidsleep(){
System.out.println("Dog is sleeping");}}publicclassInterfaceExample{publicstaticvoidmain(String[] args){
Dog dog =newDog();
dog.eat();
dog.sleep();}}Propulsé par
Dans cet exemple, l'interface Animal déclare deux méthodes abstraites : eat et sleep. La classe Dog implémente l'interface Animal et fournit des implémentations concrètes pour ces méthodes.
Exemple 2 : Interface avec méthode par défaut
interfaceVehicle{voidstart();defaultvoidstop(){
System.out.println("Vehicle is stopping");}}classCarimplementsVehicle{publicvoidstart(){
System.out.println("Car is starting");}}publicclassDefaultMethodExample{publicstaticvoidmain(String[] args){
Car car =newCar();
car.start();
car.stop();}}Propulsé par
Ici, l'interface Vehicle comprend une méthode par défaut stop. La classe Car implémente l'interface Vehicle et fournit une implémentation de la méthode start. La méthode par défaut stop est héritée et peut être utilisée telle quelle.
Exemple 3 : Interface avec méthode statique
interfaceCalculator{static int add(int a, int b){return a + b;}}publicclassStaticMethodExample{publicstaticvoidmain(String[] args){
int result = Calculator.add(5,3);
System.out.println("Sum: "+ result);}}Propulsé par
Cet exemple montre une interface Calculator avec une méthode statique add. La méthode statique peut être appelée directement en utilisant le nom de l'interface sans avoir besoin d'une instance.
Conseils et bonnes pratiques
Responsabilité unique: Gardez les interfaces concentrées sur une seule responsabilité. Ils sont ainsi plus faciles à comprendre et à mettre en œuvre.
Conventions d'appellation: Utilisez des noms significatifs pour les interfaces. Souvent, les noms d'interface sont des adjectifs ou des noms qui décrivent le comportement ou le rôle, comme Runnable, Serializable, ou List.
Évitez la surcharge: Évitez de surcharger les méthodes dans les interfaces afin de préserver la clarté et la simplicité.
Utilisez les méthodes par défaut à bon escient: Les méthodes par défaut peuvent être utiles pour assurer la compatibilité ascendante, mais utilisez-les avec parcimonie pour éviter de compliquer l'interface.
Interfaces de documents: Documentez clairement l'objectif et le comportement attendu de chaque méthode de l'interface afin de guider les personnes chargées de la mise en œuvre.
Préférez la composition à l'héritage: Utilisez des interfaces pour définir les capacités et préférez la composition à l'héritage pour obtenir un code flexible et facile à maintenir.
Concepts supplémentaires
Interfaces multiples
En Java, une classe peut implémenter plusieurs interfaces, ce qui lui permet d'hériter des méthodes abstraites de toutes les interfaces implémentées.
interfaceMovable{voidmove();}interfaceStoppable{voidstop();}classRobotimplementsMovable, Stoppable {publicvoidmove(){
System.out.println("Robot is moving");}publicvoidstop(){
System.out.println("Robot has stopped");}}publicclassMultipleInterfacesExample{publicstaticvoidmain(String[] args){
Robot robot =newRobot();
robot.move();
robot.stop();}}Propulsé par
Dans cet exemple, la classe Robot met en œuvre les interfaces Movable et Stoppable, en fournissant des implémentations pour les méthodes définies dans les deux interfaces.
Le mot-clé
interfaceen Java est utilisé pour déclarer un type spécial de classe qui ne contient que des méthodes abstraites, des méthodes par défaut, des méthodes statiques et des variables finales. Les interfaces permettent de réaliser l'abstraction et l'héritage multiple en Java.Utilisation
Les interfaces sont utilisées pour spécifier un ensemble de méthodes qu'une classe doit implémenter. Ils sont particulièrement utiles pour définir un contrat auquel plusieurs classes peuvent adhérer, en s'assurant qu'elles fournissent des fonctionnalités spécifiques.
Syntax
InterfaceName: Le nom de l'interface.public,static, etfinal.Exemples
Exemple 1 : Interface de base
Dans cet exemple, l'interface
Animaldéclare deux méthodes abstraites :eatetsleep. La classeDogimplémente l'interfaceAnimalet fournit des implémentations concrètes pour ces méthodes.Exemple 2 : Interface avec méthode par défaut
Ici, l'interface
Vehiclecomprend une méthode par défautstop. La classeCarimplémente l'interfaceVehicleet fournit une implémentation de la méthodestart. La méthode par défautstopest héritée et peut être utilisée telle quelle.Exemple 3 : Interface avec méthode statique
Cet exemple montre une interface
Calculatoravec une méthode statiqueadd. La méthode statique peut être appelée directement en utilisant le nom de l'interface sans avoir besoin d'une instance.Conseils et bonnes pratiques
Runnable,Serializable, ouList.Concepts supplémentaires
Interfaces multiples
En Java, une classe peut implémenter plusieurs interfaces, ce qui lui permet d'hériter des méthodes abstraites de toutes les interfaces implémentées.
Dans cet exemple, la classe
Robotmet en œuvre les interfacesMovableetStoppable, en fournissant des implémentations pour les méthodes définies dans les deux interfaces.