Entre l'héritage et le conteneur

Anonim

Héritage vs conteneur

Héritage et conteneur sont deux concepts importants trouvés dans POO (Object Oriented Programming Example: C ++). En termes simples, à la fois le conteneur et l'héritage traitent 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 parent 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 de membre.

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

Comme mentionné ci-dessus, l'héritage est la capacité d'une classe à 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 autorisant l'extension des propriétés et le comportement d'une classe existante par une classe nouvellement définie. Si la classe A étend B, la classe B est appelée classe parent (ou classe super) et la classe A est appelée classe enfant (ou classe / 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 une fonctionnalité nouvelle ou étendue aux méthodes) le comportement hérité de la classe parente. L'héritage représente une relation "is-a" dans 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 du monde 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 la classe Employee puis la généraliser à une classe Person (par exemple, la généralisation). Dans cet exemple, l'employé aura toutes les propriétés et le comportement de la personne (c.-à-d. L'employé est également une personne) et peut contenir des fonctionnalités supplémentaires (ainsi, la personne n'est pas un employé).

Qu'est-ce que Containership?

Containership est la capacité d'une classe à contenir des objets de différentes classes en tant que données de membre. Par exemple, la classe A pourrait contenir un objet de classe B en tant que membre. Ici, toutes les méthodes publiques (ou fonctions) 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 aussi 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 accès pour exécuter toutes les méthodes publiques de la classe contenue, il n'est pas capable de modifier ou de fournir des fonctionnalités supplémentaires. Quand il s'agit d'un problème de programmation dans le monde réel, un objet de classe TextBox peut être contenu dans le formulaire de classe, et peut donc être dit qu'un formulaire contient un TextBox (ou un formulaire est composé d'un TextBox).

Différence entre héritage et conteneur

Bien que l'héritage et le conteneur soient deux concepts de POO, ils sont tout à fait différents dans ce qu'ils permettent au programmeur d'atteindre. 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 de membre. 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 capacité de changer ou d'ajouter un comportement à la contenue. L'héritage représente une relation «is-a» dans POO, tandis que le conteneur représente une relation «has-a».