Recommandé, 2024

Choix De L'Éditeur

Différence entre classe et interface en Java

La classe et l'interface sont toutes deux utilisées pour créer de nouveaux types de référence. Une classe est un ensemble de champs et de méthodes qui agissent sur les champs. Une interface a des méthodes totalement abstraites, c'est-à-dire des méthodes sans personne. Une interface est syntaxiquement similaire à la classe, mais il existe une différence majeure entre une classe et une classe qui 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 du tableau de comparaison présenté ci-dessous.

Tableau de comparaison

Base de comparaisonClasseInterface
De baseUne 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 l'appel.
Mot-cléclasseinterface
Spécificateur d'accèsLes membres d'une classe peuvent être privés, publics ou protégés.Les membres d'une interface sont toujours publics.
Les méthodesLes méthodes d'une classe sont définies pour effectuer une action spécifique.Les méthodes d'une interface sont purement abstraites.
Implémenter / ÉtendreUne classe peut implémenter un nombre illimité d'interfaces et ne peut étendre qu'une classe.Une interface peut étendre plusieurs interfaces mais ne peut implémenter aucune interface.
ConstructeurUne classe peut avoir des constructeurs pour initialiser les variables.Une interface ne peut jamais avoir de constructeur car il n’ya pratiquement aucune variable à initialiser.

Définition de classe

Une classe est l’un des aspects les plus importants de la programmation Java. Sans classes, vous ne pouvez pas implémenter de 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 a 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 contient des champs et des méthodes qui agissent sur ces champs. Une classe est créée à l'aide d'une classe de mots - clés. Permet de voir comment déclarer une classe.

 class nom_classe {/ * champs ... méthodes * /} 

Lorsqu'une classe est instanciée, chaque objet créé contient une copie des champs et des méthodes les contenant. Les champs et les membres déclarés dans une classe peuvent être statiques ou non statiques. La valeur des membres statiques est constante pour chaque objet, tandis que les membres non statiques sont initialisés par chaque objet différemment selon ses besoins.

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 publics, privés et protégés. Une classe peut hériter d'une classe à l'aide du spécificateur d'accès qui déterminera 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 masquage et d’encapsulation de données dans la programmation orientée objet.

Définition d'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 un concept d'interface. Une interface est syntaxiquement similaire à une classe, mais sa déclaration de champ manque et les méthodes à l'intérieur d'une interface n'ont aucune implémentation. Une interface est déclarée à l'aide d'une interface de mot clé. Voyons la déclaration d'une interface.

 interface nom_interface {type nom_var = valeur; type method1 (liste de paramètres); type method2 (liste de paramètres); . . } 

Une interface ne définit aucune méthode déclarée à l'intérieur car elle manque de champs sur lesquels opérer. Juste parce qu'une méthode dans une interface n'effectue aucune action, une interface ne peut jamais être instanciée. Si une interface a un membre de champ, elle doit être initialisée au moment de sa déclaration. Une interface ne contient jamais de constructeur car il manque des membres de champ pour s'initialiser. Ainsi, une interface définit uniquement ce qu'une classe doit faire au lieu de savoir comment.

Une fois créée, une interface peut être implémentée par un nombre quelconque de classes à l'aide d'un mot clé implémenté . 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 à l'aide du mot - clé extend . Si une classe implémente une interface qui étend une autre interface. Ensuite, 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 par les classes qui les implémentent.

Différences clés entre la classe et l'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'est donc pas utile d'instancier une interface.
  2. Une classe est déclarée en utilisant une classe de mot-clé. De la même manière, une interface est créée à l'aide d'une interface de mot clé.
  3. Les membres d'une classe peuvent avoir le spécificateur d'accès comme public, privé, protégé. Mais les membres d'une interface sont toujours publics car ils doivent être accessibles par les classes qui les implémentent.
  4. Les méthodes à l'intérieur d'une classe sont définies pour exécuter une action sur les champs déclarés dans la classe. Comme il manque une interface 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 illimité d'interfaces, mais ne peut étendre qu'une seule super classe. Une interface peut étendre un nombre illimité d'interfaces, mais ne peut implémenter aucune interface.
  6. Une classe contient des constructeurs définis pour obtenir la variable initialisée. Cependant, une interface n'a pas de constructeur car il n'y a pas de champs à initialiser. Les champs d'une interface sont initialisés uniquement au moment de leur déclaration.

Conclusion:

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

Top