Différence entre la classe abstraite et la classe concrète

Différence entre la classe abstraite et la classe concrète
Différence entre la classe abstraite et la classe concrète

Vidéo: Différence entre la classe abstraite et la classe concrète

Vidéo: Différence entre la classe abstraite et la classe concrète
Vidéo: JAVA (Intermédiaire) - 34 - Differences entre classes abstraites et Interfaces 2024, Juillet
Anonim

Classe abstraite vs classe concrète

La plupart des langages de programmation modernes orientés objet comme Java et C sont basés sur des classes. Ils réalisent les concepts orientés objet tels que l'encapsulation, l'héritage et le polymorphisme grâce à l'utilisation de classes. Les classes sont une représentation abstraite d'objets du monde réel. Les classes peuvent être concrètes ou abstraites selon le niveau d'implémentation des fonctionnalités de leur méthode. Une classe concrète implémente complètement toutes ses méthodes. Une classe abstraite peut être considérée comme une version limitée d'une classe régulière (concrète), où elle peut contenir des méthodes partiellement implémentées. En règle générale, les classes concrètes sont appelées (juste) classes.

Qu'est-ce que la classe Béton ?

La classe par défaut est une classe concrète. Le mot-clé class est utilisé pour définir des classes (par exemple en Java). Et généralement, ils sont simplement appelés classes (sans l'adjectif concret). Les classes concrètes décrivent la représentation conceptuelle d'objets du monde réel. Les classes ont des propriétés appelées attributs. Les attributs sont implémentés en tant que variables globales et d'instance. Les méthodes des classes représentent ou définissent le comportement de ces classes. Les méthodes et les attributs des classes sont appelés les membres de la classe. Généralement, l'encapsulation est réalisée en rendant les attributs privés, tout en créant des méthodes publiques qui peuvent être utilisées pour accéder à ces attributs. Un objet est l'instance d'une classe. L'héritage permet à l'utilisateur d'étendre des classes (appelées sous-classes) à partir d'autres classes (appelées super classes). Le polymorphisme permet au programmeur de substituer un objet d'une classe à la place d'un objet de sa super classe. Typiquement, les noms trouvés dans la définition du problème deviennent directement des classes dans le programme. Et de même, les verbes deviennent des méthodes. Public, private et protected sont les modificateurs d'accès typiques utilisés pour les classes.

Qu'est-ce qu'une classe abstraite ?

Les classes abstraites sont déclarées à l'aide du mot-clé Abstract (par exemple en Java,). 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 inexistante. 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 parente et que des fonctionnalités puissent ê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, elle devient 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 contiendra des éléments qui devront ê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 de logiciels. Le programmeur, qui écrit du code pour hériter, doit suivre exactement les définitions de la méthode (mais peut bien sûr avoir sa propre implémentation).

Quelle est la différence entre la classe abstraite et la classe concrète ?

Les classes abstraites ont généralement une implémentation partielle ou nulle. D'autre part, les classes concrètes ont toujours une implémentation complète de son comportement. Contrairement aux classes concrètes, les classes abstraites ne peuvent pas être instanciées. Par conséquent, les classes abstraites doivent être étendues afin de les rendre utiles. Les classes abstraites peuvent contenir des méthodes abstraites, mais pas les classes concrètes. Lorsqu'une classe abstraite est étendue, toutes les méthodes (abstraites et concrètes) sont héritées. La classe héritée peut implémenter une ou toutes les méthodes. Si toutes les méthodes abstraites ne sont pas implémentées, alors cette classe devient également une classe abstraite.

Conseillé: