Différence Entre La Classe Abstraite Et L'interface

Différence Entre La Classe Abstraite Et L'interface
Différence Entre La Classe Abstraite Et L'interface

Vidéo: Différence Entre La Classe Abstraite Et L'interface

Vidéo: Différence Entre La Classe Abstraite Et L'interface
Vidéo: JAVA (Intermédiaire) - 34 - Differences entre classes abstraites et Interfaces 2024, Novembre
Anonim

Classe abstraite vs interface

La classe abstraite et l'interface sont deux constructions orientées objet trouvées dans de nombreux langages de programmation orientés objet comme Java. La classe abstraite peut être considérée comme une version abstraite d'une classe régulière (concrète), tandis qu'une interface peut être considérée comme un moyen d'implémenter un contrat. La classe abstraite est une classe qui ne peut pas être initialisée mais qui peut être étendue. L'interface est un type qui doit être implémenté par d'autres classes. En Java, les classes abstraites sont déclarées à l'aide du mot clé Abstract, tandis que le mot clé interface est utilisé pour définir une interface.

Qu'est-ce qu'une classe abstraite?

En règle générale, les classes abstraites, également appelées classes de base abstraites (ABC), ne peuvent pas être instanciées (une instance de cette classe ne peut pas être créée). Ainsi, les classes abstraites n'ont de sens que si le langage de programmation prend en charge l'héritage (possibilité de créer des sous-classes à partir de l'extension d'une classe). Les classes abstraites représentent généralement un concept abstrait ou une entité avec une implémentation partielle ou nulle. Par conséquent, les classes abstraites agissent comme des classes parentes à partir desquelles les classes enfants sont dérivées afin que la classe enfant partage les fonctionnalités incomplètes de la classe parent et des fonctionnalités peuvent être ajoutées pour les compléter.

Les classes abstraites peuvent contenir des méthodes abstraites. Les sous-classes étendant une classe abstraite peuvent implémenter ces méthodes abstraites (héritées). Si la classe enfant implémente toutes ces méthodes abstraites, il s'agit d'une classe concrète. Mais si ce n'est pas le cas, la classe enfant devient également une classe abstraite. Tout cela signifie que, lorsque le programmeur nomme une classe en tant qu'abstrait, il dit que la classe sera incomplète et qu'elle aura des éléments qui doivent être complétés par les sous-classes héritées. C'est une belle façon de créer un contrat entre deux programmeurs, ce qui simplifie les tâches de développement logiciel. Le programmeur, qui écrit du code pour hériter, doit suivre exactement les définitions de méthode (mais bien sûr peut avoir sa propre implémentation).

Qu'est-ce qu'une interface?

Une interface est un type abstrait utilisé pour spécifier un contrat qui doit être implémenté par des classes, qui implémentent cette interface. Le mot clé interface est utilisé pour définir une interface et le mot clé Implements est utilisé pour implémenter une interface par une classe (en langage de programmation Java). Habituellement, une interface ne contiendra que des signatures de méthode et des déclarations de constantes. Toute interface qui implémente une interface particulière doit implémenter toutes les méthodes définies dans l'interface, ou doit être déclarée en tant que classe abstraite. En Java, le type d'une référence d'objet peut être défini comme un type d'interface. Mais cet objet doit être nul ou doit contenir un objet d'une classe, qui implémente cette interface particulière. À l'aide du mot-clé Implements en Java, vous pouvez implémenter plusieurs interfaces dans une seule classe.

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

Les classes abstraites représentent généralement un concept abstrait ou une entité avec une implémentation partielle ou inexistante. D'autre part, une interface est un type abstrait utilisé pour spécifier un contrat qui doit être implémenté par des classes. Les classes abstraites doivent être héritées (ou étendues), tandis que les interfaces doivent être implémentées. Les classes abstraites peuvent contenir des méthodes abstraites, alors qu'une interface ne doit contenir que des méthodes abstraites. Les classes abstraites peuvent contenir n'importe quelle variable, mais les interfaces ne peuvent définir que des constantes. Une classe ne peut pas hériter de plus d'une classe abstraite mais peut implémenter plusieurs interfaces. Une interface ne peut pas implémenter une autre interface. Cependant, une interface peut étendre une classe.

Recommandé: