Héritage vs Conteneur
L'héritage et le conteneur sont deux concepts importants trouvés dans OOP (exemple de programmation orientée objet: C ++). En termes simples, Containership et Héritage consistent à fournir des propriétés ou un comportement supplémentaires à une classe. 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. Conteneur, par contre, 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 parente en l'étendant. 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. Si la classe A s'étend sur B, la classe B est appelée la classe parente (ou la super classe) et la classe A, la classe enfant (ou la 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 méthodes nouvelles ou étendues aux méthodes) le comportement hérité de la classe parent. L'héritage représente une relation «est-une» en POO. Cela signifie essentiellement que A est aussi 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. Ceci s'appelle la spécialisation. Mais vous pouvez aussi d'abord créer la classe Employee puis la généraliser à une classe Person (c'est-à-dire une 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 contenir certaines fonctionnalités supplémentaires.
Qu'est-ce qu'un conteneur??
Le conteneur est la capacité d'une classe à contenir des objets de différentes classes en tant que données membres. Par exemple, la classe A pourrait 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 conteneur est également appelé composition. Dans cet exemple, on peut dire que la classe A est composée de la classe B. Dans OOP, Containership représente une relation «has-a». Il est important de noter que, même si le conteneur a le droit d'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 peut donc être considéré comme un formulaire contenant un TextBox (ou bien un formulaire est composé d'un TextBox).
Différence entre l'héritage et le conteneur
Bien que l'héritage et le conteneur soient deux concepts POO, ils diffèrent considérablement par ce qu'ils permettent au programmeur. 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, tandis que Containership est la capacité d'une classe de contenir des objets de différentes classes en tant que données membres. Si une classe est étendue, elle hérite de tous 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 ne peut modifier ou ajouter un comportement à la classe contenue. L'héritage représente une relation "est-a" dans la POO, tandis que Containership représente une relation "a-a".