Différence entre classe et interface en Java

author
5 minutes, 41 seconds Read

Classe et interface sont toutes deux utilisées pour créer de nouveaux types de référence. Une classe est une collection de champs et de méthodes qui opèrent sur les champs. Une interface possède des méthodes totalement abstraites c’est-à-dire des méthodes sans personne. Une interface est syntaxiquement similaire à la classe mais il y a une différence majeure entre la classe et l’interface qui est qu’une classe peut être instanciée, mais une interface ne peut jamais être instanciée.

Apprenons donc quelques différences supplémentaires entre une classe et une interface à l’aide d’un tableau de comparaison présenté ci-dessous.

Contenu : Class Vs Interface

  1. Tableau de comparaison
  2. Définition
  3. Différences clés
  4. Conclusion

Tableau de comparaison

.

Base de comparaison Classe Interface
Basique Une classe est instanciée pour créer des objets. Une interface ne peut jamais être instanciée car les méthodes ne peuvent effectuer aucune action lors de leur invocation.
Mot clé classe interface
Spécificateur d’accès Les membres d’une classe peuvent être privés, publics ou protégés. Les membres d’une interface sont toujours publics.
Méthodes Les méthodes d’une classe sont définies pour effectuer une action spécifique. Les méthodes d’une interface sont purement abstraites.
Implémentation/extension Une classe peut implémenter un nombre quelconque d’interface et ne peut étendre qu’une seule classe. Une interface peut étendre plusieurs interfaces mais ne peut implémenter aucune interface.
Constructeur Une classe peut avoir des constructeurs pour initialiser les variables. Une interface ne peut jamais avoir de constructeur car il n’y a presque aucune variable à initialiser.

Définition de la classe

Une classe est un aspect le plus important de la programmation Java sans classes vous ne pouvez pas mettre en œuvre un programme java. Une classe crée des types de référence et ces types de référence sont utilisés pour créer des objets. Une classe a une signature et un corps. La signature d’une classe contient le nom de la classe et des informations qui indiquent si la classe a hérité d’une autre classe. Le corps d’une classe comporte des champs et des méthodes qui opèrent sur ces champs. Une classe est créée à l’aide du mot-clé class. Voyons comment déclarer une classe.

class class_name{/*fields...methods*/}

Lorsqu’une classe est instanciée, chaque objet créé contient une copie des champs et des méthodes avec eux. Les champs et les membres déclarés à l’intérieur d’une classe peuvent être statiques ou non statiques. La valeur des membres statiques est constante pour chaque objet alors que, les membres non statiques sont initialisés par chaque objet différemment selon son besoin.

Les membres d’une classe ont des spécificateurs d’accès qui décident de la visibilité et de l’accessibilité des membres à l’utilisateur ou aux sous-classes. Les spécificateurs d’accès sont public, private et protected. Une classe peut être héritée par une autre classe en utilisant le spécificateur d’accès qui décidera de la visibilité des membres d’une superclasse (classe héritée) dans une sous-classe (classe héritante). Ainsi, la classe remplit le concept de dissimulation de données et d’encapsulation dans la programmation orientée objet.

Définition de l’interface

Une interface fait également partie des types de référence définis en Java. L’importance d’une interface est qu’en Java, une classe ne peut hériter que d’une seule classe. Pour éviter cette restriction, les concepteurs de Java ont introduit le concept d’interface. Une interface est syntaxiquement similaire à une classe, mais il lui manque la déclaration des champs et les méthodes à l’intérieur d’une interface n’ont pas d’implémentation. Une interface est déclarée à l’aide du mot-clé interface. Voyons la déclaration d’une interface.

interface interface_name {type var_name= value;type method1(parameter-list);type method2(parameter-list);..}

Une interface ne définit aucune méthode déclarée à l’intérieur d’elle car elle manque de champs sur lesquels opérer. Juste parce que toute méthode à l’intérieur d’une interface n’effectue aucune action, une interface ne peut jamais être instanciée. Si une interface possède un champ membre, celui-ci doit être initialisé au moment de sa déclaration. Une interface ne contient jamais de constructeurs car elle manque de membres de champ à initialiser. Ainsi, une interface définit seulement ce qu’une classe doit faire au lieu de comment elle doit le faire.

Une interface une fois créée peut être implémentée par un nombre quelconque de classes en utilisant un mot clé implements. Mais les classes implémentant une interface doivent définir toutes les méthodes à l’intérieur d’une interface. Une interface peut également hériter d’une autre interface en utilisant le mot-clé extend. Si une classe implémente une interface qui étend une autre interface. Alors une classe doit définir les méthodes des deux interfaces apparaissant dans une chaîne. Les méthodes à l’intérieur d’une interface doivent toujours être publiques car elles doivent être accessibles aux classes qui les implémentent.

Différences clés entre classe et interface en Java

  1. Une classe peut être instanciée en créant ses objets. Une interface n’est jamais instanciée car les méthodes déclarées à l’intérieur d’une interface sont abstraites et n’effectuent aucune action, il n’y a donc aucune utilité à instancier une interface.
  2. Une classe est déclarée à l’aide d’un mot-clé class. De la même manière, une interface est créée en utilisant un mot-clé interface.
  3. Les membres d’une classe peuvent avoir le spécificateur d’accès comme public, private, protected. Mais les membres d’une interface sont toujours publics car ils doivent être accessibles aux classes qui les implémentent.
  4. Les méthodes à l’intérieur d’une classe sont définies pour effectuer une action sur les champs déclarés dans la classe. Comme l’interface manque dans la déclaration des champs, les méthodes à l’intérieur d’une interface sont purement abstraites.
  5. Une classe peut implémenter un nombre quelconque d’interfaces mais ne peut étendre qu’une seule super classe. Une interface peut étendre un nombre quelconque d’interfaces mais ne peut implémenter aucune interface.
  6. Une classe a des constructeurs définis en son sein pour obtenir la variable initialisée. Mais, une interface n’a pas de constructeurs car il n’y a pas de champs à initialiser. Les champs d’une interface sont initialisés au moment de leur déclaration seulement.

Conclusion

Les deux classes et les interfaces ont leur propre importance. Une classe est utilisée lorsque nous avons besoin de définir comment la tâche serait effectuée. Une interface est utilisée lorsque nous avons besoin de savoir quelle tâche doit être effectuée.

Similar Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.