Classe abstraite vs classe concrète
La plupart des langages de programmation modernes d'objets modernes modernes comme Java et C # sont basés sur les cours. Ils réalisent les concepts orientés objet tels que l'encapsulation, l'héritage et le polymorphisme grâce à l'utilisation des classes. Les classes sont une représentation abstraite des objets du monde réel. Les classes peuvent être concrettes ou abstraites en fonction du niveau de mise en œuvre de leur fonctionnalité de méthode. Une classe en béton 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 (justes) classes.
Qu'est-ce que la classe de béton?
La classe par défaut est une classe de béton. Le mot-clé de classe est utilisé pour définir les classes (e.g. en java). Et généralement ils sont simplement appelés classes (sans le béton adjectif). Les classes concrètes représentent la représentation conceptuelle des objets du monde réel. Les classes ont des propriétés appelées attributs. Les attributs sont mis en œuvre en tant que variables globales et d'instance. Les méthodes dans les classes représentent ou définissent le comportement de ces classes. Les méthodes et les attributs des classes sont appelés membres de la classe. En règle générale, l'encapsulation est obtenue 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 les 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. En règle générale, les noms trouvés dans la définition du problème deviennent directement des classes du programme. Et de même, les verbes deviennent des méthodes. Le public, privé et protégé sont les modificateurs d'accès typiques utilisés pour les classes.
Qu'est-ce que la classe abstraite?
Les classes abstraites sont déclarées en utilisant un mot-clé abstrait (e.g. 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 ne sont significatives que si le langage de programmation prend en charge l'héritage (capacité à 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 non. Par conséquent, les classes abstraites agissent comme des classes de parents à partir desquelles les classes enfants sont dérivées afin que la classe d'enfants partagera les caractéristiques incomplètes de la classe des parents et des fonctionnalités peuvent être ajoutées pour le compléter.
Les classes abstraites peuvent contenir des méthodes abstraites. Les sous-classes prolongeant une classe abstraite peuvent implémenter ces méthodes abstraites (héréditaires). Si la classe d'enfants implémente toutes ces méthodes abstraites, elle devient une classe concrète. Mais si ce n'est pas le cas, la classe d'enfants devient également une classe abstraite. Ce que tout cela signifie, c'est que lorsque le programmeur nomme une classe en tant que résumé, elle dit que la classe sera incomplète et qu'il 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 dans le développement de logiciels. Le programmeur, qui écrit du code pour hériter, doit suivre exactement les définitions de la méthode (mais bien sûr peut 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 mise en œuvre partielle ou pas. D'un autre côté, les cours de béton ont toujours une mise en œuvre complète de son comportement. Contrairement aux classes en béton, 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 les classes concrètes ne peuvent pas. Lorsqu'une classe abstraite est prolongée, toutes les méthodes (abstraites et concrets) sont héréditaires. La classe héritée peut implémenter toutes ou toutes les méthodes. Si toutes les méthodes abstraites ne sont pas mises en œuvre, alors cette classe devient également une classe abstraite.