Classe abstraite vs héritage
La classe abstraite et l'héritage sont deux concepts importants orientés objet que l'on trouve 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 que l'héritage permet aux nouvelles classes d'étendre d'autres classes. La classe abstraite est une classe qui ne peut pas être initialisée mais peut être étendue. Ainsi, les classes abstraites n'ont de sens que si le langage de programmation prend en charge l'héritage. En Java, les classes abstraites sont déclarées à l'aide du mot-clé Abstract, tandis que le mot-clé Extends est utilisé pour hériter d'une (super) classe..
Quelle est la 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 signification que si le langage de programmation prend en charge l'héritage (possibilité de créer des sous-classes à partir d'une extension de 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 parent desquelles les classes enfant sont dérivées, de sorte que la classe enfant partage les caractéristiques incomplètes de la classe parent 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, il s'agit d'une classe concrète. Mais si ce n'est pas le cas, la classe enfant devient également une classe abstraite. Cela signifie simplement que lorsque le programmeur désigne une classe en tant qu'abstrait, elle dit que la classe sera incomplète et qu'elle comportera des éléments devant être complétés par les sous-classes héritées. C'est un bon moyen de créer un contrat entre deux programmeurs, ce qui simplifie les tâches de développement logiciel. Le programmeur, qui écrit le code à hériter, doit suivre exactement les définitions de la méthode (mais peut bien sûr avoir sa propre implémentation).
Qu'est-ce que l'héritage??
L'héritage est un concept orienté objet, qui permet aux nouvelles classes d'étendre d'autres classes. Le mot-clé Extends est utilisé pour implémenter le concept d'héritage dans le langage de programmation Java. L'héritage permet essentiellement de réutiliser le code en permettant l'extension des propriétés et du comportement d'une classe existante par une classe nouvellement définie. Lorsqu'une nouvelle sous-classe (ou classe dérivée) étend une super-classe (ou classe parent), cette sous-classe héritera de tous les attributs et méthodes de la super-classe. La sous-classe peut éventuellement remplacer le comportement (fournir des méthodes nouvelles ou étendues aux méthodes) hérité de la classe parent. En règle générale, une sous-classe ne peut pas étendre plusieurs super classes (par exemple en Java). Par conséquent, vous ne pouvez pas utiliser les extensions pour plusieurs héritages. Pour avoir plusieurs héritages, vous devez utiliser des interfaces..
Quelle est la différence entre Abstract Class et Inheritance?
Les classes abstraites représentent généralement un concept abstrait ou une entité avec une implémentation partielle ou nulle. L'héritage permet aux nouvelles classes d'étendre d'autres classes. Comme les classes abstraites ne peuvent pas être instanciées, vous devez utiliser le concept d'héritage pour utiliser les classes abstraites. Sinon, une classe abstraite n'a aucune utilité. Les classes abstraites peuvent contenir des méthodes abstraites et lorsque la classe est étendue, toutes les méthodes (abstraites et concrètes) sont héritées. La classe héritée peut implémenter toutes les méthodes. Si toutes les méthodes abstraites ne sont pas implémentées, cette classe devient également une classe abstraite. Une classe ne peut pas hériter de plus d'une classe abstraite (ce n'est pas une qualité de classes abstraites en soi, mais plutôt une restriction d'héritage).