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

Table des matières:

Anonim

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