Classe abstraite vs héritage
La classe abstraite et l'héritage sont deux concepts orientés objet importants trouvés 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 à de nouvelles classes d'étendre d'autres classes. La classe abstraite est une classe qui ne peut pas être initialisée mais qui 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.
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 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, 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 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).
Qu'est-ce que l'héritage ?
L'héritage est un concept orienté objet, qui permet à de 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 fournit essentiellement la réutilisation du code en permettant d'étendre les propriétés et le 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 parente), cette sous-classe hérite de tous les attributs et méthodes de la super classe. La sous-classe peut éventuellement remplacer le comportement (fournir des fonctionnalités 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 l'héritage multiple. Pour avoir un héritage multiple, vous devez utiliser des interfaces.
Quelle est la différence entre la classe abstraite et l'héritage ?
Les classes abstraites représentent généralement un concept abstrait ou une entité avec une implémentation partielle ou inexistante. L'héritage permet à de nouvelles classes d'étendre d'autres classes. Étant donné que 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 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. Une classe ne peut pas hériter de plus d'une classe abstraite (ce n'est pas une qualité des classes abstraites en soi, mais plutôt une restriction d'héritage).
Messages associés:
Différence entre la classe abstraite et la classe concrète
Différence entre virtuel et abstrait
Différence entre la classe abstraite et l'interface
Différence entre les outils et les extensions
Différence entre le graphique et l'arbre
Classé sous:Programmation Marqué avec:ABC, abstrait, Classes de base abstraites, Classe abstraite, Classes abstraites, Mot-clé abstrait, Méthodes abstraites, classe concrète, Mot-clé Extends, Héritage, Classe d'héritage, classe héritée, Java, héritage multiple, concepts orientés objet, classe normale, super classe
À propos de l'auteur: Indika
Indika, BSc. Eng, MSECE Génie informatique, PhD. Computer Science, est professeur adjoint et a des intérêts de recherche dans les domaines de la bioinformatique, de la biologie computationnelle et du traitement biomédical du langage naturel.
Commentaires
-
Jason dit
30 août 2017 à 13h25
Merci d'avoir expliqué la différence. Toutes mes questions ont été résolues par ceci.
Répondre
-
Aus dit
10 mai 2019 à 15h04
meilleure réponse sur le Web, le professeur n'explique pas la merde et n'a aucun sens, mono ton mf. C'est ainsi que vous expliquez les concepts.
Répondre
Laisser un commentaire Annuler la réponse
Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués
Commentaire
Nom
Courriel
Site Web