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.

2voto

Mallik Points 11

Le polymorphisme est la capacité d'un objet à apparaître et à se comporter différemment pour la même invocation. ex : chaque animal apparaît et sonne différemment ( quand vous le frappez :) )

2voto

TarkaDaal Points 2961

Le polymorphisme est une caractéristique des langages de programmation qui permet de traiter un objet comme une instance de son super-type.

1voto

joel.neely Points 17059

Donner un nom unique à un ensemble d'opérations analogues sur différents types. Lorsqu'elle est bien faite, l'analogie est évidente, par exemple "additionner" des nombres arithmétiquement et "additionner" des chaînes de caractères par concaténation (qui additionne leurs longueurs).

1voto

Claudio Acciaresi Points 9503

C'est la définition que j'ai toujours suivie :

Deux objets sont polymorphes (par rapport à un protocole particulier) entre eux, si les deux répondent aux mêmes messages avec la même sémantique.

Le polymorphisme concerne les messages, il s'agit de pouvoir répondre au même ensemble de messages avec la même sémantique.

Si deux objets peuvent répondre à empty ? mais que la sémantique du message est différente, alors ils ne sont pas polymorphes.

1voto

Igor Zevaka Points 32586

Le polymorphisme au niveau inférieur est la capacité d'invoquer des méthodes définies par les implémenteurs d'une interface à partir de l'instance de l'interface.

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