Vidéo: Différence Entre Virtuel Et Abstrait
2024 Auteur: Mildred Bawerman | [email protected]. Dernière modifié: 2023-12-16 08:38
Virtuel vs abstrait
Virtual et Abstract sont deux mots-clés utilisés dans la plupart des langages de programmation orientés objet (OO) tels que Java et C #. Bien qu'il y ait de légères différences dans ce que cela signifie dans différentes langues, les mots-clés virtuels et abstraits donnent une impression d'implémentation partielle aux entités auxquelles il s'attache.
Abstrait
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, de sorte que la classe enfant partage les fonctionnalités incomplètes de la classe parente et que 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). En Java et C #, les classes et méthodes abstraites sont déclarées à l'aide du mot clé Abstract. 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). En Java et C #, les classes et méthodes abstraites sont déclarées à l'aide du mot clé Abstract. 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). En Java et C #, les classes et méthodes abstraites sont déclarées à l'aide du mot clé Abstract.
Virtuel
Les méthodes / fonctions virtuelles offrent la possibilité de remplacer facultativement son comportement par une classe héritière (en utilisant une fonction avec la même signature). Le concept de fonction virtuelle est important dans le scénario suivant. Supposons qu'une classe est dérivée par une classe enfant, puis chaque fois qu'un objet de la classe dérivée est utilisé, il peut faire référence à un objet de la classe de base ou de la classe dérivée. Cependant, le comportement des appels de méthode peut être ambigu si les méthodes de la classe de base sont remplacées. Ainsi, afin de résoudre cette ambiguïté, le mot clé virtuel est utilisé. Si la méthode est marquée Virtual, alors la fonction de la classe dérivée est appelée (le cas échéant) ou bien la fonction de la classe de base est appelée. Par exemple, en C ++, le mot clé Virtual est utilisé exactement à cette fin. En C #, le mot clé Virtual est utilisé de manière similaire, mais en plus,le remplacement de mot-clé doit être utilisé pour modifier toutes les méthodes remplacées. Mais en Java, il n'y a pas de mot clé virtuel explicite. Toutes les méthodes non statiques sont considérées comme virtuelles. Les fonctions virtuelles sans corps sont appelées fonctions Pure Virtual. En Java et C #, les méthodes abstraites sont en fait Pure Virtual.
Différence entre virtuel et abstrait
Bien que Abstrait et Virtuel soient deux mots-clés / concepts qui donnent le sens d'une implémentation incomplète à ses entités associées, ils ont leurs différences. Les méthodes abstraites (qui doivent être définies à l'intérieur des classes abstraites) n'ont pas du tout d'implémentation, alors que les méthodes virtuelles peuvent avoir une implémentation. Si les méthodes abstraites sont étendues par une classe concrète, toutes les méthodes abstraites héritées doivent être implémentées, tandis que les méthodes virtuelles héritées peuvent ou non être remplacées.
Recommandé:
Différence Entre EMF Et Différence Potentielle
EMF vs différence de potentiel (force électromotrice) sont utilisés pour décrire deux paramètres différents entre deux points. Le terme `` différence de potentiel '' est un ge
Différence Entre La Différence De Phase Et La Différence De Chemin
Différence de phase vs différence de chemin La différence de phase et la différence de chemin sont deux concepts très importants en optique. Ces phénomènes sont vus sur des problèmes de
Différence Entre La Différence De Potentiel Et La Tension
Différence de potentiel vs tension La différence de potentiel et la tension sont deux termes utilisés en ingénierie pour décrire une différence de potentiel en deux points
Différence Entre L'équation De Différence Et L'équation Différentielle
Équation de différence vs équation différentielle Un phénomène naturel peut être décrit mathématiquement par les fonctions d'un certain nombre de variables indépendantes et par
Différence Entre La Principale Différence Entre Les Minéraux Métalliques Et Non Métalliques
Différence clé - Minéraux métalliques et non métalliques Un minéral est un constituant solide et inorganique naturel avec une formule chimique définie un