Quelle est la différence entre une classe abstraite et une interface en Java

le 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 et l'héritage multiple..

L'abstraction est l'un des principaux piliers de la programmation orientée objet (POO). Il s’agit de masquer les détails de la mise en oeuvre et d’afficher uniquement les fonctionnalités destinées à 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 au lieu de savoir comment 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 existante. L'héritage multiple consiste à utiliser des données et des méthodes de plusieurs classes. Il est possible d'implémenter l'héritage multiple en utilisant des interfaces.

Zones clés couvertes

1. Quelle est la classe abstraite en Java
     - Définition, fonctionnalité
2. Qu'est-ce que l'interface en Java?
     - Définition, fonctionnalité
3. Quelle est la différence entre une classe abstraite et une interface en Java
     - Comparaison des différences clés

Mots clés

Classe abstraite, interface, héritage multiple

Quelle est 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. Reportez-vous à l'exemple ci-dessous.

Figure 1: Classe abstraite de forme

Figure 2: classe Rectangle

Figure 3: Classe principale du programme 1

La forme est une classe abstraite. Il présente la méthode abstraite draw 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éé. Obj.draw () appellera la méthode dans Rectangle draw () et affichera “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 l’implémentation d’un 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

La forme 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 Cercle est créé. Le s.draw () appellera la méthode draw in 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 les interfaces A et B. La classe C fournit l'implémentation pour l'affichage de la méthode. 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 un ensemble 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 un ensemble de méthodes abstraites. C'est la différence fondamentale entre la classe abstraite et l'interface en Java.

Variables

Les variables utilisées constituent 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.

Les 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

De plus, les classes abstraites ne peuvent pas être utilisées pour implémenter l'héritage multiple. Mais les interfaces peuvent être utilisées pour implémenter plusieurs interfaces. Par conséquent, on peut dire que l'applicabilité est une différence entre une classe abstraite et une interface en Java..

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é «expand». Une classe d'interface peut être implémentée à l'aide du mot clé "implements".

la mise en oeuvre

De plus, les classes abstraites peuvent être implémentées à l'aide du mot clé "implément", tandis que l'interface est utilisée pour implémenter l'abstraction et 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 et 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.