Une interface est un type de référence en Java. Il est similaire à la classe. C’est une collection de méthodes abstraites. Une classe implémente une interface, héritant ainsi des méthodes abstraites de l’interface.
avec les méthodes abstraites, une interface peut également contenir des constantes, des méthodes par défaut, des méthodes statiques et des types imbriqués. Les corps de méthode existent uniquement pour les méthodes par défaut et les méthodes statiques.,
écrire une interface est similaire à écrire une classe. Mais une classe décrit les attributs et les comportements d’un objet. Et une interface contient des comportements qu’une classe implémente.
à Moins que la classe qui implémente l’interface est abstraite, toutes les méthodes de l’interface doivent être définies dans la classe.
Une interface est similaire à une classe de la manière suivante −
-
Une interface peut contenir n’importe quel nombre de méthodes.
-
Une interface est écrite dans un fichier avec une .extension java, avec le nom de l’interface correspondant au nom du fichier.,
-
Le code octet d’une interface s’affiche dans une .fichier de classe.
-
Les Interfaces apparaissent dans les paquets, et leur fichier de bytecode correspondant doit être dans une structure de répertoires qui correspond au nom du paquet.
Cependant, une interface est différente d’une classe à plusieurs égards, y compris −
-
– Vous ne peut pas instancier une interface.
-
Une interface ne contient pas tous les constructeurs.
-
Toutes les méthodes d’une interface sont abstraites.
-
Une interface ne peut pas contenir de champs d’instance., Les seuls champs pouvant apparaître dans une interface doivent être déclarés à la fois statique et final.
-
Une interface n’est pas prolongée par une classe; il est mis en œuvre par une classe.
-
Une interface peut étendre à de multiples interfaces.
Déclarer des Interfaces
Le mot-clé interface est utilisé pour déclarer une interface. Voici un exemple simple de déclarer une interface
Exemple
ce qui Suit est un exemple de l’interface
Interfaces ont les propriétés suivantes −
-
Une interface est implicitement abstrait., Vous n’avez pas besoin d’utiliser le mot clé abstract lors de la déclaration d’une interface.
-
chaque méthode dans une interface est également implicitement abstraite, de sorte que le mot-clé abstrait n’est pas nécessaire.
-
les Méthodes d’une interface sont implicitement public.
Exemple
/* File name : Animal.java */interface Animal { public void eat(); public void travel();}
mise en Œuvre d’Interfaces
Lorsqu’une classe implémente une interface, vous pouvez penser à la classe de la signature d’un contrat, d’accepter d’effectuer les comportements spécifiques de l’interface. Si une classe n’exécute pas tous les comportements de l’interface, la classe doit se déclarer comme abstraite.,
Une classe utilise le mot-clé implements pour implémenter une interface. Le mot clé implements apparaît dans la déclaration de classe après la partie extends de la déclaration.
Exemple
Ceci va produire le résultat suivant −
Sortie
Mammal eatsMammal travels
Lors de la substitution des méthodes définies dans les interfaces, il y a plusieurs règles à suivre
-
Checked exceptions ne doivent pas être déclarés sur la mise en œuvre des méthodes autres que ceux déclarés par la méthode de l’interface ou des sous-classes de ceux déclarés par la méthode de l’interface.,
-
la signature de la méthode d’interface et le même type ou sous-type de retour doivent être conservés lors de la substitution des méthodes.
-
Une classe d’implémentation elle-même peut être abstraite et si c’est le cas, les méthodes d’interface n’ont pas besoin d’être implémentées.
lors des interfaces d’implémentation, il existe plusieurs règles −
-
Une classe peut implémenter plus d’une interface à la fois.
-
Une classe ne peut étendre qu’une seule classe, mais implémenter de nombreuses interfaces.
-
Une interface peut étendre une autre interface, d’une façon similaire à une classe ne peut étendre une autre classe.,
Extension Interfaces
Une interface peut étendre une autre interface de la même manière qu’une classe ne peut étendre une autre classe. Le mot-clé extends est utilisé pour étendre une interface, et l’interface enfant hérite des méthodes de l’interface parent.
l’interface sportive suivante est étendue par les interfaces Hockey et Football.
exemple
L’interface Hockey a quatre méthodes, mais elle hérite de deux de Sports; ainsi, une classe qui implémente le Hockey doit implémenter les six méthodes., De même, une classe qui implémente le Football doit définir les trois méthodes du Football et les deux méthodes du sport.
extension de plusieurs Interfaces
Une classe Java ne peut étendre qu’une seule classe parente. L’héritage Multiple n’est pas autorisé. Les Interfaces ne sont pas des classes, cependant, et une interface peut étendre plus d’une interface parent.
le mot clé extends est utilisé une fois et les interfaces parentes sont déclarées dans une liste séparée par des virgules.,
par exemple, si L’interface Hockey étendait à la fois les Sports et les événements, elle serait déclarée comme −
exemple
public interface Hockey extends Sports, Event
Interfaces de marquage
l’utilisation la plus courante des interfaces d’extension se produit lorsque l’interface parent ne contient aucune méthode. Par exemple, l’interface MouseListener dans java.awt.package d’événements java étendu.util.EventListener, qui est défini comme −
exemple
package java.util;public interface EventListener{}
Une interface sans méthodes est appelée une interface de marquage., Il y a deux objectifs de conception de base des interfaces de marquage −
crée un parent commun − comme avec L’interface EventListener, qui est étendue par des dizaines d’autres interfaces dans L’API Java, vous pouvez utiliser une interface de marquage pour créer un parent commun parmi un groupe d’interfaces. Par exemple, lorsqu’une interface étend EventListener, la JVM sait que cette interface particulière va être utilisée dans un scénario de délégation d’événements.
ajoute un type de données à une classe − c’est dans cette situation que vient le terme, tagging., Une classe qui implémente une interface de marquage n’a pas besoin de définir de méthodes (puisque l’interface n’en a pas), mais la classe devient un type d’interface par polymorphisme.