Interface vs classe abstraite en Java : quelle est la différence ?

30 octobre 2021

Java est l'un des principaux langages de programmation les plus couramment utilisés dans le monde. C'est un programmation orientée objet langage qui peut être exécuté sur n'importe quelle plate-forme. Le langage de programmation Java est basé sur le principe WORA. WORA implique Write Once, Run Anywhere. En d'autres termes, le langage Java exécute son code compilé n'importe où à partir de n'importe quelle plate-forme sans le recompiler. Une classe abstraite et une interface en Java sont les deux classes importantes.

Table des matières

Qu'est-ce que 'java?

Java est un langage de programmation puissant qui assure une programmation sécurisée. le Microsystème solaire est le développeur du langage Java. Il agit à la fois comme une plate-forme et comme un langage de programmation. Les développeurs peuvent utiliser le langage de programmation Java pour développer des applications mobiles, des applications logicielles de bureau, des systèmes embarqués, etc.



L'avantage significatif de l'utilisation du langage Java est qu'il est indépendant de la plate-forme. Les développeurs peuvent écrire et compiler le code Java en un seul système opérateur ou plate-forme et exécuter ou exécuter le même code compilé sur un autre système d'exploitation ou plate-forme. UNE Machine virtuelle Java (JVM) est responsable de l'exécution de tout code Java compilé. Pour exécuter n'importe quel code sur la machine virtuelle Java (JVM), le code doit être converti en Code octet Java , car la JVM accepte le bytecode Java.

Éléments de langage de base en Java

Le langage de programmation Java est orienté objet. Par conséquent, tout code Java implique la combinaison d'objets. Ces objets sont utilisés pour appeler ou invoquer n'importe quelle fonction à l'intérieur du code. Le langage de programmation Java contient généralement les éléments suivants dans son code :

    Classer:

À classer dans le langage de programmation Java est une collection de méthodes et de variables de données. De plus, les objets sont créés dans la classe

    Objet:

Une objet dans le langage Java représente l'état, le comportement et l'identité d'une chose particulière. Lorsque vous déclarez un objet dans la classe, il est utilisé pour exécuter les méthodes de la même classe.

    Méthodes :

Méthodes sont appelées fonctions qui exécutent un bloc de code dans un but précis. Les méthodes sont appelées dans la fonction principale de tout programme utilisant des objets.

    Variables d'instance:

Variables d'instance sont des variables uniques affectées à chaque type d'objet.

Ci-dessous la syntaxe du programme Java.

|__+_|

Nous avons vu la déclaration de la classe et comment l'appeler dans la fonction principale de son objet. Il existe différentes classes en Java, comme Classe POJO , classe statique, classe abstraite, classe de béton , classe finale et une classe interne. Cependant, dans cet article, nous n'apprendrons que la classe abstraite. Nous avons discuté des bases de Java. Plongeons maintenant dans notre sujet principal, la classe abstraite et l'interface en Java.

Qu'est-ce qu'une classe abstraite?

Une classe qui est déclarée en utilisant ‘abstract’ comme mot-clé est appelée une classe abstraite. Avant de plonger dans les détails d'une classe abstraite, nous devons d'abord savoir ce que signifie précisément l'abstraction.

Voir également Top 10 des meilleures applications de téléphone espion pour Android et iPhone

Abstraction

Le mot ' abstraction ' implique de ne pas exposer ou masquer les méthodes d'implémentation, et seule la fonctionnalité est affichée. Dans une telle situation, l'utilisateur ne connaît que les choses nécessaires et essentielles. L'utilisateur n'a pas besoin de connaître d'autres fonctionnalités internes. Une abstraction peut être réalisée à l'aide de deux éléments Java - une classe abstraite et une interface.

Par exemple, une personne envoie un message texte à l'autre personne. L'expéditeur tape le message et l'envoie. Mais, il ou elle n'est pas au courant du processus de transmission du message à l'autre personne. L'expéditeur connaît le message et non la méthode de communication. C'est le meilleur exemple d'abstraction.

À partir de l'exemple ci-dessus, vous avez peut-être compris le concept d'abstraction. Passons maintenant à la classe abstraite. En utilisant le mot-clé 'abstract', nous pouvons créer une classe abstraite.

Syntaxe:

|__+_|

La classe abstraite contient des méthodes, qui peuvent être abstraites ou non abstraites.

Qu'est-ce que la méthode abstraite ?

Une méthode abstraite est une fonction qui n'a pas son implémentation en elle. Il comprend un nom de fonction ou de méthode suivi d'un point-virgule.

Syntaxe:

|__+_|

Lors de l'implémentation de la classe abstraite, vous devez vous rappeler certains points importants.

  1. Vous devez toujours déclarer un résumé avec un mot-clé 'résumé'.
  2. Vous pouvez inclure des méthodes abstraites ainsi que des méthodes traditionnelles dans votre classe abstraite.
  3. La chose la plus importante à retenir est que vous ne pouvez pas instancier la classe abstraite. En d'autres termes, vous ne pouvez créer aucun objet dans la classe abstraite.
  4. Vous pouvez impliquer des constructeurs et des méthodes statiques dans votre classe abstraite.
  5. Les classes régulières ou traditionnelles ne peuvent pas avoir de méthodes abstraites. Il ne prend en charge que les méthodes standard.
interface vs classe abstraite

Besoin de la classe abstraite en Java

Lorsque vous utilisez la classe abstraite, elle n'inclut que la fonctionnalité et non l'implémentation. Mais, les sous-classes de la classe abstraite utilisent la fonctionnalité pour l'implémentation. En d'autres termes, les sous-classes peuvent remplacer la classe abstraite. Concentrons-nous sur un exemple pour apprendre le concept de la classe abstraite.

Par exemple, considérons une classe Animal. Nous inclurons la fonctionnalité des sons d'animaux dans la classe abstraite, c'est-à-dire que nous prendrons sound() comme méthode. Prenons Chat, Chien et Lion comme sous-classes de la classe Animal. Chaque animal a un son unique. Par conséquent, si nous implémentons la méthode sound() dans la superclasse, elle ne sera d'aucune utilité.

Chaque sous-classe doit remplacer la superclasse pour implémenter la fonctionnalité définie dans la superclasse. En utilisant Animal comme classe abstraite, chacune de ses sous-classes, Cat, Dog et Lion, implémentera la méthode sound(). Toutes les sous-classes du superclasse implémentez les méthodes de la superclasse en utilisant le mot-clé 'extends'.

|__+_|

Sortir:

|__+_|

Qu'est-ce qu'Interface ?

Jusqu'à présent, nous avons couvert la classe abstraite et les méthodes abstraites. Nous allons continuer avec l'interface. Qu'est-ce qu'une interface en Java ? Le but de l'utilisation de l'interface et de la classe abstraite en Java est le même, c'est-à-dire pour implémenter le concept d'abstraction.

Voir également Comment utiliser la fonctionnalité 'Take a Break' de Facebook pour mettre quelqu'un en sourdine

Une interface en Java contient des méthodes. Mais, ces méthodes sont des méthodes abstraites sans aucune implémentation. Nous utilisons ‘abstract’ comme mot-clé pour déclarer la classe abstraite. De même, le mot clé 'interface' est utilisé pour déclarer l'interface en Java. Comme la classe abstraite, l'interface ne spécifie que les méthodes qu'elle contient. Et les classes implémentent les méthodes spécifiées par l'interface.

Syntaxe:

|__+_|

Une interface en Java peut contenir des méthodes sans leur implémentation, et les méthodes peuvent être publiques, statiques ou finales. Dans la classe abstraite, les classes implémentent les méthodes de la superclasse en utilisant 'extends' comme mot-clé. En revanche, dans l'interface, les classes qui utilisent les méthodes de l'interface doivent inclure 'impléments' comme mot-clé.

image 617dd312ad2f7

Besoin de l'interface en Java

L'un des besoins importants pour l'utilisation de l'interface en Java est d'implémenter le héritage multiple concept. En Java, les multiples héritages sont exécutés à l'aide d'interfaces. Une autre exigence principale pour l'interface en Java est l'abstraction. L'interface et la classe abstraite en Java suivent l'abstraction.

Pourquoi utiliser deux concepts différents, l'interface et la classe abstraite, pour implémenter une abstraction ? La raison de cette question est l'utilisation de variables dans la classe abstraite et l'interface. Nous pouvons utiliser les variables finales, publiques et statiques dans l'interface tout en utilisant uniquement des variables non finales dans la classe abstraite.

Regardons maintenant l'exemple de l'interface en Java. Considérez l'interface Shape avec side() comme une méthode et les classes Triangle, Square et Pentagon. Les trois classes implémentent la méthode side() de l'interface Shape.

|__+_|

Sortir:

|__+_|

Classe abstraite vs interface en Java

Nous avons vu ce que sont les classes abstraites et les interfaces en Java. Nous avons également discuté de la nécessité de la classe abstraite et d'une interface en Java avec leurs exemples. La classe abstraite et une interface sont utilisées pour implémenter l'abstraction en Java. Cependant, une utilisation ultérieure de l'interface en Java consiste à implémenter l'héritage multiple. Le tableau ci-dessous vous aidera à comprendre la différence exacte entre la classe abstraite et une interface en Java :

Classe abstraiteInterface
Une classe abstraite en Java comprend des méthodes abstraites et des méthodes traditionnelles.Une interface en Java n'implique strictement que des méthodes abstraites.
La classe abstraite s'exécute à une vitesse plus rapide.Une interface est relativement plus lente que la classe abstraite.
Il n'est utilisé que pour implémenter le concept d'abstraction et non l'héritage multiple.Vous pouvez utiliser une interface en Java pour l'abstraction et l'héritage multiple.
Vous pouvez utiliser des variables statiques, non statiques et non finales dans la classe abstraite.Vous pouvez utiliser les variables finales, publiques et statiques dans l'interface.
La classe abstraite est utilisée pour éviter l'indépendance.L'interface peut être utilisée pour un enrichissement futur.
Une seule classe ne peut étendre qu'une seule classe abstraite.Une même classe peut implémenter plusieurs interfaces.
La déclaration de la classe abstraite utilise le mot-clé ‘abstract’.L'interface en Java peut être implémentée à l'aide du mot-clé 'interface'.
Vous pouvez utiliser des modificateurs d'accès dans la classe abstraite.Une interface ne prend pas en charge l'utilisation de différents modificateurs d'accès. Tout ce qui est défini dans l'interface est public.
Le mot clé 'extends' est utilisé pour étendre la classe abstraite.Le mot-clé 'implémente' est utilisé pour implémenter l'interface.
Un abstrait est flexible, qui peut étendre une autre classe et peut implémenter plusieurs interfaces.Une interface en Java ne peut étendre que d'autres interfaces.
Vous pouvez déclarer des constructeurs et des destructeurs dans la classe abstraite.L'utilisation de constructeurs et de destructeurs n'est pas autorisée dans l'interface Java.
Dans la classe abstraite, vous pouvez définir des champs et des constantes.Dans l'interface, vous ne pouvez définir aucun champ.

Tout ce qui précède sont les différences mineures entre la classe abstraite et l'interface en Java. Notez correctement toutes les différences entre la classe abstraite et l'interface et exécutez les codes de manière appropriée. Outre l'abstrait et l'interface, il existe une classe concrète ou traditionnelle en Java.

Voir également 10 correctifs pour Discord Text to Speech ne fonctionnent pas

Qu'est-ce que la classe concrète en Java ?

Contrairement à la classe abstraite et à l'interface en Java, la classe concrète comprend des méthodes qui ont leurs implémentations. Vous pouvez créer un objet de la classe concrète et l'instancier. De plus, le concret peut implémenter l'interface et étendre la classe abstraite en Java.

Syntaxe:

|__+_|

La classe concrète devrait avoir l'implémentation de toutes ses méthodes. Si une méthode de classe concrète n'a pas d'implémentation, la classe n'est pas la classe concrète. La classe concrète a une différence significative entre la classe abstraite et l'interface en Java. Maintenant, laissez-nous savoir comment la classe concrète est implémentée ou exécutée avec un exemple.

Considérez l'opération de classe qui a deux méthodes, somme et différence. La classe concrète contient l'implémentation des méthodes de somme et de différence, et l'objet peut être créé pour invoquer ces méthodes.

|__+_|

Sortir:

|__+_|

Classe V. Classe abstraite Vs. Interface en Java

Dans cette section de l'article, nous verrons la différence entre la classe traditionnelle, la classe abstraite et l'interface en Java.

ClasserClasse abstraiteInterface
La classe ne prend en charge que les méthodes concrètes (méthodes ayant des implémentations) et non les méthodes abstraites.La classe abstraite prend en charge à la fois les méthodes abstraites et les méthodes concrètes. Mais la classe déclarée comme abstract doit avoir au moins une méthode abstraite.L'interface ne supporte strictement que les méthodes abstraites et non les méthodes concrètes.
Dans la classe concrète, l'implémentation de la méthode est obligatoire.Dans la classe abstraite de Java, il peut contenir ou non l'implémentation de la méthode.Dans l'interface, aucune implémentation de méthode n'est incluse.
La classe concrète n'utilise aucun mot-clé pour la déclaration.La classe abstraite utilise le mot-clé ‘abstract pour la déclaration.L'interface utilise le mot clé 'interface' pour la déclaration.
Nous pouvons créer des objets de la classe concrète.Nous ne pouvons pas créer d'objets de la classe abstraite, mais la sous-classe implémentant la classe abstraite peut créer des objets.Comme la classe abstraite, nous ne pouvons pas créer d'objets dans l'interface. La classe qui implémente l'interface crée des objets.

Exemple de code Java de classe abstraite et d'interface

Nous avons vu en détail les différents exemples de la classe abstraite et de l'interface. Nous allons maintenant nous diriger vers un seul exemple de code Java qui illustrera à la fois la classe abstraite et l'interface.

|__+_|

Sortir:

|__+_|

Le code ci-dessus était le meilleur exemple Java de classe abstraite et d'interface.

FAQ

un. A quoi servent la classe abstraite et l'interface en Java ?

Nous utilisons une classe abstraite en Java pour représenter le comportement typique de plusieurs sous-classes sans implémenter la classe entière. Une interface en Java est principalement utilisée pour implémenter plusieurs héritages, car Java n'est pas compatible avec plusieurs héritages. Une autre utilisation de l'interface en Java est la communication.

deux. Qu'est-ce que l'interface par rapport à la classe abstraite ?

Une classe abstraite en Java permet aux utilisateurs de définir des fonctionnalités, et ses sous-classes implémentent ces fonctionnalités. En revanche, une interface en Java ne fait que définir les fonctionnalités mais ne les implémente pas. Toute classe traditionnelle ou concrète ne peut étendre qu'une seule classe abstraite, alors qu'une classe peut implémenter plusieurs interfaces.

3. La classe abstraite et l'interface en Java ont-elles un constructeur ?

La classe abstraite peut contenir des constructeurs, alors que l'interface n'inclut pas de constructeurs. Il n'a que des méthodes abstraites.

Conclusion

Java est l'un des langages de programmation les plus utilisés, indépendant de la plate-forme. Il offre la flexibilité d'exécuter facilement le code Java compilé sur n'importe quelle autre plate-forme. En Java, la classe abstraite et l'interface sont introduites pour implémenter le concept d'abstraction. Dans l'abstraction, les détails d'implémentation de toute méthode sont cachés à l'utilisateur.

En Java, la classe abstraite et l'interface ont une différence mineure entre elles. Une classe abstraite en Java a au moins une méthode abstraite, alors que l'interface contient strictement les méthodes abstraites. La méthode abstraite n'implique pas l'implémentation. Nous avons également vu la classe abstraite Vs. Interface. Plus tard, nous avons couvert la classe concrète et la classe par rapport à la classe abstraite par rapport à l'interface. Nous avons noté l'exemple Java individuel et combiné de la classe abstraite et de l'interface.