Quelle est la différence entre le héritage multiple et le polymorphisme? p>
Dans un livre I rouge une ligne disant p>
Il n'y a pas de support pour plusieurs héritages au niveau de la classe. Cela signifie que vous ne pouvez pas étendre plus d'une classe à la fois. Strong> p>
qui contradict le concept de polymorphisme décrit dans le même livre que p>
Maintenant, si plusieurs héritage ne sont pas autorisés dans PHP, alors comment le polymorphisme est autorisé? p>
3 Réponses :
Ces deux ont très peu à faire les uns avec les autres. p>
Un héritage multiple est une chose statique après la compilation de temps / d'exécution. Le polymorphisme est une technique dans laquelle seul le temps d'exécution est réellement décidé quelle méthode sur un sous-type est appelée. P>
php ne permet pas de héritage multiple. P>
Un héritage multiple signifie qu'un objet hérite de deux classes parents différentes. Un programmeurBicycliste est à la fois un programmeur et un cycliste. Le problème se pose lorsque la classe de programmeur définit ses données de membre Le polymorphisme traite du comportement des objets. Cela vous permet de dire à un objet de faire quelque chose et de faire dépendre l'action qui en résulte dépend de la classe de l'objet, même si vous ne savez pas exactement ce que c'est. Donc, vous rencontrez une personne, bien que vous ne sachiez pas si c'est un programmeur ou un cuisinier, et vous lui disez de favori_activity code> comme
piratage code> pendant qu'un bicycliste a également
préféré_activity cod>, mais c'est code>. Si vous demandez à un programmeBicycliste ce que son
favori_activité code> est, quelle est la bonne réponse? P>
perform_your_job () code>. Si c'est un programmeur, elle écrira du code, si c'est un cuisinier, elle fera un repas, mais vous n'avez pas besoin de lui dire spécifiquement à
Write_Code () CODE> ou
MAKE_A_MEAL () CODE >. p>
Pouvez-vous être un peu élaboratif pour le polymorphisme? .. son intéressant .. plssss le fait ...
Comme Ikke dit, Héritage multiple strong> n'a rien à voir avec le polymorphisme. Si je pouvais dessiner un diagramme de classe, il ressemble à une héritage multiple ressemble à ceci: P> // Assuming we have a pack of animals
// This is Java
for (Animal pet : pack)
pet.speak();
Ahaaa grande explication c'était une idée fausse dans mon esprit merci beaucoup Xavier ......
Le problème de polymorphisme dans PHP est que, puisque les types de retour ne sont pas appliqués (il s'agissait d'une langue faiblement dactylographiée), il n'y a aucune garantie que parle code> renvoie réellement une chaîne. Cela pourrait renvoyer un objet de base de données. (Voir
PHP n'autorise pas le polymorphisme ...?
... parce que c'est une langue faiblement type
Alors pourquoi les livres de texte expliquent-ils le concept de polymorphisme dans le livre de OOP en PHP
@Seanja Bien que ce ne soit pas un polymorphisme strictement, la technique peut toujours être appliquée. Mais cela s'appelle DuckTypegong dans des langues faiblement de type.
Les gars veuillez être spécifiques et élaborants ....
Si vous vouliez poser une question spécifique à PHP, veuillez le faire dans le sujet des messages. Sinon, veuillez supprimer la balise PHP.
@Parth Pourquoi un livre de OOP sur PHP explique-t-il de multiples héritage?