Une interface est un type de référence utilisé pour appliquer un contrat avec une classe. Un contrat fait référence à une obligation de mettre en œuvre les méthodes définies par une interface.
Les interfaces fournissent une abstraction entre les méthodes qu'elles définissent et comment l'utilisateur les implémente dans une classe. Un cas d'utilisation pratique de ceci est dans les API (Application Programming Interfaces).
Les API permettent à votre programme de communiquer avec d'autres programmes sans savoir comment ils sont implémentés. Ceci est important à la fois pour des raisons de propriété (pour la société qui détient les droits) et pour un développement facile de votre part.
Voyons comment utiliser les interfaces Java.
Définition d'interfaces
Pour déclarer une interface, placez le mot-clé interface avant le nom de l'interface.
interface Voiture{
// déclarations de constantes, le cas échéant
pneus int = 4;
// signature de méthode
lumières int (luminosité int);
tour int (pneus int, sens de la chaîne){
// du code
}
}
Dans votre entête d'interface, vous pouvez également inclure son niveau de visibilité avant le mot-clé interface.
Les valeurs dans une interface sont constantes. Ces valeurs sont par défaut publique, statique et final. Par conséquent, il n'est pas nécessaire d'utiliser ces mots-clés lors de la déclaration de valeurs dans le corps d'une interface.
En rapport: Comment gérer la portée variable en Java
Le corps d'une interface peut également avoir par défaut, abstrait, statique méthodes. Ces méthodes sont par défaut Publique, il n'est donc pas nécessaire d'indiquer ces modificateurs d'accès lors de leur déclaration.
Les méthodes abstraites sont déclarées en omettant les accolades du corps d'une méthode. Voir la ligne 7 dans le code ci-dessus. Les méthodes statiques sont déclarées en faisant suivre le nom de la méthode par le mot-clé statique & les méthodes par défaut sont déclarées avec le défaut modificateur.
Ce serait maintenant le bon moment pour mentionner que vous devez utiliser les méthodes déclarées dans une interface dans toutes les classes qui l'implémentent. Ne pas le faire obligera le compilateur à "appliquer le contrat" en donnant une erreur de compilation.
Cette propriété particulière des interfaces peut présenter certains inconvénients. Prenons un cas où un fournisseur d'interface de programmation d'application (API) décide d'ajouter plus de méthodes à ses interfaces, mais plusieurs applications sont basées sur les anciennes interfaces. Les développeurs utilisant les anciennes interfaces dans leurs programmes devraient réécrire leur code, ce qui n'est pas pratique.
Alors, c'est là défaut les méthodes arrivent. Ils permettent aux fournisseurs d'API d'ajouter plus de méthodes à leurs interfaces tout en garantissant la compatibilité binaire avec les anciennes versions d'interface.
default int getDirection ( Coordonnées de chaîne){
// écrire du code pour donner une implémentation par défaut
}
La méthode ci-dessus montre comment une méthode par défaut appelée obtenirDirection est déclaré. Notez que vous devez inclure une implémentation d'une méthode par défaut lorsque vous l'écrivez.
Utilisation d'interfaces
Maintenant que nous avons défini des interfaces en Java, nous pouvons passer à la façon dont vous pouvez les implémenter. Vous le découvrirez dans la section ci-dessous.
Implémentation d'interfaces
Pour implémenter une interface, utilisez le mot-clé met en oeuvre en utilisant cette syntaxe:
la classe A implémente l'interface P{
}
N'oubliez pas que vous devez utiliser toutes les méthodes d'interface de la classe. Vous ne pouvez ignorer cette règle que si l'une des méthodes est définie comme défaut dans l'interface.
En rapport: Une introduction à l'utilisation des listes chaînées en Java
Si vous souhaitez que votre classe implémente plusieurs interfaces, vous pouvez les séparer à l'aide de virgules dans votre déclaration d'en-tête.
Exemple:
la classe A implémente l'interface P, Q, R{
}
Si la classe qui implémente l'interface est une sous-classe, utilisez la syntaxe ci-dessous:
la classe A étend B implémente C, D{
}
Les interfaces permettent des héritages multiples en Java. Normalement, une classe ne peut étendre qu'une seule classe (héritage unique). Les interfaces sont le seul moyen pour Java d'effectuer plusieurs héritages.
Les interfaces peuvent également étendre d'autres interfaces, tout comme une classe peut étendre une autre classe. L'interface enfant hérite des méthodes de l'interface qu'elle étend.
Voir l'exemple ci-dessous:
l'interface A étend B{
}
Outre l'utilisation de méthodes par défaut pour modifier une interface sans demander aux développeurs de modifier leurs programmes actuels, vous pouvez également étendre les interfaces existantes.
Vous avez maintenant des connaissances de base sur les interfaces Java
Les interfaces en Java démontrent l'abstraction, l'un des quatre piliers de la programmation orientée objet. Le polymorphisme est l'un de ces quatre piliers. Il fait référence à la capacité d'une méthode à prendre plusieurs formes.
Vous pouvez implémenter le polymorphisme en Java via la surcharge de méthode ou le remplacement de méthode. La prochaine étape de votre liste de lecture Java devrait être de savoir comment implémenter ces fonctions.
Réduisez le code que vous écrivez avec la surcharge et la substitution de méthode.
Lire la suite
- La programmation
- Java
- Langages de programmation
- La programmation
Jérôme est rédacteur chez MakeUseOf. Il couvre des articles sur la programmation et Linux. Il est également un passionné de crypto et garde toujours un œil sur l'industrie de la crypto.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner