Différence entre l'héritage et le porte-conteneurs

Différence entre l'héritage et le porte-conteneurs
Différence entre l'héritage et le porte-conteneurs

Vidéo: Différence entre l'héritage et le porte-conteneurs

Vidéo: Différence entre l'héritage et le porte-conteneurs
Vidéo: Faites-vous bien la différence entre ANSWER - RESPONSE & REPLY 2024, Juillet
Anonim

Héritage vs porte-conteneurs

L'héritage et le conteneur sont deux concepts importants trouvés dans la POO (exemple de programmation orientée objet: C++). En termes simples, Containership et Héritage s'occupent de fournir des propriétés ou un comportement supplémentaires à une classe. L'héritage est la capacité d'une classe à hériter des propriétés et du comportement d'une classe parente en l'étendant. D'autre part, Containership est la capacité d'une classe à contenir des objets de différentes classes en tant que données membres.

Qu'est-ce que l'héritage ?

Comme mentionné ci-dessus, l'héritage est la capacité pour une classe d'hériter des propriétés et du comportement d'une classe parent en l'étendant. 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. Si la classe A étend B, alors la classe B est appelée la classe parente (ou super classe) et la classe A est appelée la classe enfant (ou classe/sous-classe dérivée). Dans cet exemple de scénario, la classe A héritera de tous les attributs et méthodes publics et protégés de la super classe (B). La sous-classe peut éventuellement remplacer (fournir des fonctionnalités nouvelles ou étendues aux méthodes) le comportement hérité de la classe parent. L'héritage représente une relation "est-un" en POO. Cela signifie essentiellement que A est également un B. En d'autres termes, B peut être la classe avec une description générale d'une certaine entité du monde réel, mais A spécifie une certaine spécialisation. Dans un problème de programmation réel, la classe Person pourrait être étendue pour créer la classe Employee. C'est ce qu'on appelle la spécialisation. Mais vous pouvez également créer d'abord la classe Employee, puis la généraliser également à une classe Person (c.e. généralisation). Dans cet exemple, l'employé aura toutes les propriétés et le comportement de la personne (c'est-à-dire que l'employé est également une personne) et peut également contenir des fonctionnalités supplémentaires (ainsi, la personne n'est pas un employé).

Qu'est-ce que le porte-conteneurs ?

Containership est la capacité d'une classe à contenir des objets de différentes classes en tant que données membres. Par exemple, la classe A peut contenir un objet de la classe B en tant que membre. Ici, toutes les méthodes (ou fonctions) publiques définies dans B peuvent être exécutées dans la classe A. La classe A devient le conteneur, tandis que la classe B devient la classe contenue. Le porte-conteneurs est également appelé composition. Dans cet exemple, on peut dire que la classe A est composée de la classe B. En POO, Containership représente une relation « has-a ». Il est important de noter que, même si le conteneur a accès pour exécuter toutes les méthodes publiques de la classe contenue, il n'est pas en mesure de modifier ou de fournir des fonctionnalités supplémentaires. Lorsqu'il s'agit d'un problème de programmation dans le monde réel, un objet de la classe TextBox peut être contenu dans la classe Form, et on peut donc dire qu'un Form contient un TextBox (ou alternativement, un Form est composé d'un TextBox).

Différence entre héritage et porte-conteneurs

Bien que l'héritage et le conteneur soient deux concepts de POO, ils sont assez différents dans ce qu'ils permettent au programmeur de réaliser. L'héritage est la capacité d'une classe à hériter des propriétés et du comportement d'une classe parente en l'étendant, tandis que Containership est la capacité d'une classe à contenir des objets de différentes classes en tant que données membres. Si une classe est étendue, elle hérite de toutes les propriétés/comportements publics et protégés et ces comportements peuvent être remplacés par la sous-classe. Mais si une classe est contenue dans une autre, le conteneur n'a pas la possibilité de modifier ou d'ajouter un comportement au contenu. L'héritage représente une relation "est-un" dans la POO, tandis que Containership représente une relation "a-un".

Conseillé: