Un des interêts du polymorphisme est de pouvoir utiliser les fonctions
avec différents types d'arguments. Sous quelles conditions
un appel de fonction est bien typé en présence du
polymorphisme d'inclusion? La fonction qui teste si un point
est à l'origine dans un plan,
prend en argument un point mais peut recevoir un point coloré (vu comme un
point). Le
type de l'argument effectif peut être sous-type de celui l'argument
formel. La règle de typage associée est:
Règle (Appel de fonction avec ):
Si
alors
est bien typé et a le type
Justifions cette règle. Si
est un sous-type de
alors
toutes les opérations définies sur
sont aussi
définies sur
.
Ainsi, f qui attend un argument
de type
peut en recevoir un de type
:
on pourra appliquer en toute sécurité à celui-ci, toute
opération définie sur l'argument attendu.