Quelle est la différence entre la classe abstraite et l'interface en Java
Table des matières:
- Qu'est-ce que la classe abstraite en Java
- Qu'est-ce que l'interface en Java
- Différence entre la classe abstraite et l'interface en Java
Les différence principale entre la classe abstraite et l'interface en Java est que le La classe abstraite est utilisée pour implémenter l'abstraction tandis que l'interface est utilisée pour implémenter l'abstraction ainsi que l'héritage multiple.
L'abstraction est l'un des principaux piliers de la programmation orientée objet (POO). C'est le processus consistant à masquer les détails de l'implémentation et à afficher uniquement la fonctionnalité à l'utilisateur. Par exemple, l'utilisateur n'a pas besoin de comprendre les circuits à l'intérieur de la télécommande pour la faire fonctionner. L'abstraction est semblable à cela. Cela permet au programmeur de se concentrer sur ce que fait l'objet plutôt que sur la façon dont il est fait. En Java, il existe deux méthodes pour réaliser l'abstraction: en utilisant des classes abstraites et en utilisant des interfaces. De plus, l'héritage est un autre pilier de la POO. Il fait référence à l'utilisation de données et de méthodes d'une classe déjà existante. L'héritage multiple fait référence à l'utilisation de données et de méthodes de plusieurs classes. Il est possible d'implémenter l'héritage multiple à l'aide d'interfaces.
Classe abstraite, interface, héritage multiple
Qu'est-ce que la classe abstraite en Java
Une classe déclarée avec le mot-clé abstract est appelée classe abstraite. Une classe abstraite peut avoir des méthodes abstraites ainsi que des méthodes non abstraites. Une classe peut étendre une classe abstraite et implémenter les méthodes abstraites de la classe abstraite. Il n'est pas possible de créer des objets à partir d'une classe abstraite mais il est possible de créer des objets à partir d'une classe qui étend la classe abstraite. Référez-vous à l'exemple ci-dessous.
Figure 1: Classe abstraite de forme
Figure 2: Classe Rectangle
Figure 3: Classe principale pour le programme 1
La forme est une classe abstraite. Il a le dessin de la méthode abstraite et l'affichage de la méthode non abstraite. La classe Rectangle étend Shape. Par conséquent, la classe Rectangle implémente la méthode abstraite draw. Dans la fonction principale, un objet Rectangle est créé. Le obj.draw () appellera la méthode dans Rectangle draw () et il imprimera "Rectangle".
Qu'est-ce que l'interface en Java
Une interface en Java est similaire à une classe. Toutes les méthodes d'une interface sont des méthodes abstraites. Semblable à une classe abstraite, une interface ne peut pas être instanciée. Une interface peut être utilisée pour l'abstraction ainsi que pour la mise en œuvre de l'héritage multiple. Une interface est déclarée à l'aide du mot-clé interface. Une classe qui implémente l'interface doit implémenter toutes les méthodes déclarées dans l'interface. Reportez-vous à l'exemple ci-dessous qui illustre l'utilisation de l'interface pour réaliser l'abstraction.
Figure 4: Interface de forme
Figure 5: Classe de cercle
Figure 6: Classe principale du programme 2
Shape est une interface, qui a une méthode abstraite appelée draw. La classe Circle étend Shape. Par conséquent, la classe Circle implémente la méthode abstraite draw. Dans la fonction principale, un objet Circle est créé. Le s.draw() appellera la méthode draw dans Circle et affichera « Circle ».
Les interfaces peuvent également être utilisées pour implémenter l'héritage multiple.
Figure 7: Interface A
Figure 8: Interface B
Figure 9: Classe C
Figure 10: Classe principale du programme 3
Les interfaces A et B ont toutes deux l'affichage de la méthode abstraite. La classe C implémente à la fois les interfaces A et B. La classe C fournit l'implémentation pour l'affichage des méthodes. Dans la méthode principale, un objet de C est créé. L'obj.display appellera la méthode d'affichage en C et affichera "Hello World!".
Différence entre la classe abstraite et l'interface en Java
Définition
Une classe abstraite est une classe déclarée avec un mot-clé abstrait, qui est une collection de méthodes abstraites et non abstraites. En revanche, une interface en Java est un type de référence similaire à une classe qui est une collection de méthodes abstraites. C'est la différence fondamentale entre la classe abstraite et l'interface en Java.
Variables
Les variables utilisées sont une différence entre la classe abstraite et l'interface en Java. Alors qu'une classe abstraite peut avoir des variables finales, non finales, statiques et non statiques, une interface ne peut avoir que des variables statiques et finales.
Méthodes
Une autre différence entre la classe abstraite et l'interface en Java est que la classe abstraite peut avoir des méthodes abstraites et des méthodes non abstraites, tandis que l'interface ne peut avoir que des méthodes abstraites.
Héritage multiple
Mot-clé de la classe
De plus, le mot-clé abstract est utilisé pour déclarer la classe abstraite mais le mot-clé interface est utilisé pour déclarer une interface.
Extension et mise en œuvre
De plus, une classe abstraite peut être étendue en utilisant le mot-clé "extends". Une classe d'interface peut être implémentée à l'aide du mot-clé « implements ».
Mise en œuvre
De plus, la classe abstraite peut être implémentée à l'aide du mot-clé "implements", tandis que l'interface est utilisée pour implémenter l'abstraction ainsi que l'héritage multiple.
Conclusion
La différence entre la classe abstraite et l'interface en Java est que la classe abstraite est utilisée pour implémenter l'abstraction tandis que l'interface est utilisée pour implémenter l'abstraction ainsi que l'héritage multiple.
Référence:
1. "Classe abstraite en Java - Javatpoint." Www.javatpoint.com, disponible ici.2. "Interface en Java - Javatpoint." Www.javatpoint.com, disponible ici.
![Quelle est la différence entre la classe abstraite et l'interface en Java Quelle est la différence entre la classe abstraite et l'interface en Java](https://img.books-kingdom.com/images/002/image-4006.jpg)