Différence entre l'héritage et la composition

Différence entre l'héritage et la composition

Héritage vs composition

L'héritage et la composition sont deux concepts importants trouvés dans la POO (programmation orientée objet). En termes simples, la composition et l'héritage traitent de la fourniture de propriétés ou de comportements supplémentaires à une classe. L'héritage est la capacité d'une classe à hériter des propriétés et des comportements d'une classe parentale en l'étendant. D'un autre côté, la composition est la capacité d'une classe à contenir des objets de différentes classes en tant que données des membres.

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

Comme mentionné ci-dessus, l'héritage est la capacité d'une classe pour hériter des propriétés et des comportements d'une classe parentale en l'étendant. L'héritage fournit essentiellement la réutilisation du code en permettant aux propriétés d'étendue et au comportement d'une classe existante par une classe nouvellement définie. Si la classe A s'étend B, alors la classe B est appelée la classe parent (ou super classe) et que la classe A est appelée classe enfant (ou classe / sous-classe dérivée). Dans cet exemple de scénario, la classe A héritera 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 parentale.

L'héritage représente une relation «IS-A» dans OOP. 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 un spécialisation une certaine spécialisation. Dans un problème de programmation du monde réel, la classe de personne pourrait être étendue pour créer la classe des employés. C'est ce qu'on appelle la spécialisation. Mais vous pouvez également créer d'abord la classe des employés, puis la généraliser à une classe de personne également (je.e. généralisation). Dans cet exemple, l'employé aura toutes les propriétés et le comportement de la personne (je.e. L'employé est également une personne) et peut contenir des fonctionnalités supplémentaires (donc, la personne n'est pas un employé).

Qu'est-ce que la composition?

La composition est la capacité d'une classe à contenir des objets de différentes classes en tant que données des membres. Par exemple, la classe A pourrait contenir un objet de classe B en tant que membre. Ici, toutes les méthodes (ou fonctions) publiques définies en b peuvent être exécutées au sein de la classe A. La classe A devient le conteneur, tandis que la classe B devient la classe contenue. La composition est également appelée conteneurs. Dans cet exemple, on peut dire que la classe A est composée de classe B. Dans OOP, la composition 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 du monde réel, un objet de zone de texte de classe peut être contenu dans la forme de classe, et peut donc être dit qu'un formulaire contient une zone de texte (ou alternativement, une forme est composée d'une zone de texte).

Quelle est la différence entre l'héritage et la composition?

Bien que l'héritage et la composition soient deux concepts OOP, ils sont très différents dans ce qu'ils permettent au programmeur. L'héritage est la capacité d'une classe pour hériter des propriétés et des comportements d'une classe parentale en l'étendant, tandis que la composition est la capacité d'une classe à contenir des objets de différentes classes en tant que données membres. Si une classe est prolongée, 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 un autre, le conteneur n'a pas la possibilité de changer ou d'ajouter un comportement au contenu. L'héritage représente une relation «IS-A» dans la POO, tandis que la composition représente une relation «has-a».