Qu'est-ce que l'interface en Java avec l'exemple

Table des matières:

Anonim

Qu'est-ce que l'interface en Java?

Une interface en programmation Java est définie comme un type abstrait utilisé pour spécifier le comportement d'une classe. Une interface Java contient des constantes statiques et des méthodes abstraites. Une classe peut implémenter plusieurs interfaces. En Java, les interfaces sont déclarées à l'aide du mot-clé interface. Toutes les méthodes de l'interface sont implicitement publiques et abstraites.

Syntaxe pour la déclaration d'interface

interface {//methods}

Pour utiliser une interface dans votre classe, ajoutez le mot-clé "implements" après le nom de votre classe suivi du nom de l'interface.

Exemple d'implémentation d'interface

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Cliquez ici si la vidéo n'est pas accessible

Pourquoi une interface est-elle requise?

Pour mieux comprendre le concept de l'interface Java, voyons un exemple. La classe "Media Player" comprend deux sous-classes: lecteur CD et lecteur DVD. Chacun ayant sa méthode de mise en œuvre unique pour jouer de la musique.

Une autre classe "lecteur combo" hérite à la fois de CD et de DVD (voir l'image ci-dessous). De quelle méthode de jeu doit-il hériter? Cela peut entraîner de graves problèmes de conception. Et par conséquent, Java n'autorise pas l'héritage multiple.

Prenons maintenant un autre exemple de Dog.

Supposons que vous ayez une exigence où la classe "chien" hérite de la classe "animal" et "Pet" (voir l'image ci-dessous). Mais vous ne pouvez pas étendre deux classes en Java. Alors, que feriez-vous? La solution est Interface.

Le livre de règles de l'interface dit,

  • Une interface est une classe 100% abstraite et n'a que des méthodes abstraites.
  • La classe peut implémenter n'importe quel nombre d'interfaces.

Class Dog peut s'étendre à la classe "Animal" et implémenter l'interface en tant que "Pet".

Exemple d'interface Java:

Étape 1) Copiez le code suivant dans un éditeur.

interface Pet {test du vide public ();}class Dog implémente Pet {test public void () {System.out.println ("Méthode d'interface implémentée");}public static void main (String args []) {Pet p = nouveau chien ();p.test ();}}

Étape 2) Enregistrez, compilez et exécutez le code. Observez la sortie.

Différence entre classe et interface

Classer Interface
En classe, vous pouvez instancier une variable et créer un objet. Dans une interface, vous ne pouvez pas instancier une variable et créer un objet.
La classe peut contenir des méthodes concrètes (avec implémentation) L'interface ne peut pas contenir de méthodes concrètes (avec implémentation)

Les spécificateurs d'accès utilisés avec les classes sont privés, protégés et publics.

Dans l'interface, un seul spécificateur est utilisé: public.

Quand utiliser l'interface et la classe abstraite?

  • Utilisez une classe abstraite lorsqu'un modèle doit être défini pour un groupe de sous-classes
  • Utiliser une interface lorsqu'un rôle doit être défini pour d'autres classes, quel que soit l'arborescence d'héritage de ces classes

Doit connaître des faits sur l'interface

  • Une classe Java peut implémenter plusieurs interfaces Java. Il est nécessaire que la classe implémente toutes les méthodes déclarées dans les interfaces.
  • La classe doit remplacer toutes les méthodes abstraites déclarées dans l'interface
  • L'interface permet d'envoyer un message à un objet sans se soucier des classes auxquelles il appartient.
  • La classe doit fournir des fonctionnalités pour les méthodes déclarées dans l'interface.
  • Toutes les méthodes d'une interface sont implicitement publiques et abstraites
  • Une interface ne peut pas être instanciée
  • Une référence d'interface peut pointer vers des objets de ses classes d'implémentation
  • Une interface peut s'étendre à partir d'une ou de plusieurs interfaces. La classe ne peut étendre qu'une seule classe mais implémenter n'importe quel nombre d'interfaces
  • Une interface ne peut pas implémenter une autre interface. Il doit étendre une autre interface si nécessaire.
  • Une interface qui est déclarée dans une autre interface est appelée interface imbriquée
  • Au moment de la déclaration, la variable d'interface doit être initialisée. Sinon, le compilateur lèvera une erreur.
  • La classe ne peut pas implémenter deux interfaces en java qui ont des méthodes avec le même nom mais un type de retour différent.

Résumé :

  • La classe qui implémente l'interface doit fournir des fonctionnalités pour les méthodes déclarées dans l'interface
  • Toutes les méthodes d'une interface sont implicitement publiques et abstraites
  • Une interface ne peut pas être instanciée
  • Une référence d'interface peut pointer vers des objets de ses classes d'implémentation
  • Une interface peut s'étendre à partir d'une ou de plusieurs interfaces. Une classe ne peut étendre qu'une seule classe mais implémenter n'importe quel nombre d'interfaces