86 votes

Polymorphisme - Définir en deux phrases seulement

J'ai examiné d'autres définitions et explications, mais aucune ne me satisfait. Je veux voir si quelqu'un peut définir le polymorphisme en deux phrases maximum, sans utiliser de code ou d'exemples. Je ne veux pas entendre "Vous avez donc un ouvreur de personne/voiture/canette..." ou comment le mot est dérivé (personne n'est impressionné que vous sachiez ce que poly et morph signifient). Si vous avez une très bonne compréhension de ce qu'est le polymorphisme et une bonne maîtrise de l'anglais, vous devriez être en mesure de répondre à cette question par une définition courte, bien que dense. Si votre définition définit précisément le polymorphisme, mais qu'elle est si dense qu'elle nécessite quelques relectures, alors c'est exactement ce que je recherche.

Pourquoi seulement deux phrases ? Parce qu'une définition est courte et intelligente. Une explication est longue et contient des exemples et du code. Regardez ici pour des explications (les réponses sur ces pages ne sont pas satisfaisantes pour ma question) :

Polymorphisme vs surcharge vs surcharge
Essayez de décrire le polymorphisme aussi simplement que possible.

Pourquoi est-ce que je pose cette question ? Parce qu'on m'a posé la même question et que j'ai été incapable de trouver une définition satisfaisante (selon mes critères, qui sont assez élevés). Je veux voir si l'un des grands esprits de ce site peut y parvenir.

Si vous ne pouvez vraiment pas respecter l'exigence des deux phrases (c'est un sujet difficile à définir), il n'y a pas de problème si vous dépassez cette limite. L'idée est d'avoir une définition qui définit réellement ce qu'est le polymorphisme et qui n'explique pas ce qu'il fait ou comment l'utiliser (vous voyez la différence ?).

0 votes

Un nom, une mise en œuvre multiple.

2 votes

On m'a posé cette question lors d'un entretien d'embauche. J'avais l'impression que la poser lors d'un entretien d'embauche était un acte de snobisme élitiste, le genre de chose qu'un employé de Google poserait avec suffisance en supposant que personne ne pourrait y répondre efficacement. Si vous n'avez pas obtenu le poste parce que vous ne pouviez pas y répondre, il est probablement préférable que vous travailliez pour des personnes qui s'intéressent davantage à ce que vous pouvez faire qu'à qui vous pouvez être plus malin.

0 votes

Le polymorphisme est un concept très important à comprendre dans le développement. Je recommande vivement de comprendre au moins sa valeur, sinon sa définition formelle. Je suggère d'être capable d'expliquer au moins le fonctionnement et la valeur du modèle Stratégie.

0voto

Paolo Points 933

Pour une signature de méthode donnée, différentes implémentations de méthode sont exécutées pour différentes classes, hiérarchiquement liées.

0voto

Anuja Shiran Points 39

J'ai répondu dans un autre pour aussi. mais c'est reparti...

le polymorphisme : lorsqu'un objet se comporte différemment dans des circonstances différentes

Par exemple, prenez,

ma tante

La tante est un objet et la relation avec moi est que je suis sa nièce. Elle est gentille avec moi et me fait des cookies, etc.

pour son mari ; c'est une épouse.

maintenant nous pouvons voir que cet objet tante se comporte différemment. Elle agit comme une épouse, par exemple elle nettoie les vêtements et prépare les repas, etc.

pour sa fille, elle est une mère

Maintenant, l'objet tante se comporte différemment, elle a les qualités d'une mère.

c'est le polymorphisme

0voto

GaRRaPeTa Points 927

Le polymorphisme est la possibilité d'utiliser différentes classes qui mettent en œuvre une interface commune (ou étendent une classe de base commune) d'une manière commune, sans avoir besoin de connaître la mise en œuvre spécifique, et en utilisant uniquement les méthodes disponibles dans l'interface commune.

En Java, comme ArrayList et LinkedList implémentent tous deux List, si vous déclarez une variable comme List, vous pouvez toujours effectuer les opérations autorisées dans List, peu importe si votre variable a été instanciée comme un ArrayList ou un LinkedList.

-2voto

Kapil D Points 1098

Je suppose que parfois les objets sont appelés dynamiquement. Vous n'êtes pas sûr que l'objet soit un triangle, un carré, etc. dans un exemple classique de polygone de forme.

Ainsi, pour laisser de telles choses derrière nous, nous appelons simplement la fonction de la classe dérivée et supposons que celle de la classe dynamique sera appelée.

Vous ne vous souciez pas de savoir si c'est un carré, un triangle ou un rectangle. Vous ne vous souciez que de l'aire. La méthode getArea sera donc appelée en fonction de l'objet dynamique passé.

-2voto

justinmreina Points 158

Le polymorphisme est la capacité d'une fonction à s'adapter automatiquement pour accepter des données d'entrée de différents types. Vous pouvez 'additionner' deux doubles '1.1' et '2.2' et obtenir '3.3' ou 'additionner' deux chaînes de caractères 'Stack' et 'Overflow' et obtenir 'StackOverflow'.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X