Le polymorphisme (grec : « plusieurs formes ») signifie qu'une référence d'un type parent peut pointer vers des objets de différents sous-types, et que la méthode correcte est sélectionnée au moment de l'exécution en fonction de l'objet réel - et non du type déclaré de la référence. C'est ce qu'on appelle la répartition dynamique (polymorphisme d'exécution).
Polymorphisme d'exécution en action