Cet exemple plutôt complexe, voire compliqué, montre comment changer le comportement d'un objet en lui changeant sa classe.

On utilise le principe du polymorphisme qui permet à plusieurs classes d'hériter les mêmes aspects et comportements de base (position, taille, couleur, etc), puis de changer uniquement un aspect ou un comportement. On traite chacun des objets spécifiques comme un objet générique (variables communes) mais avec ses comportements spécifiques (méthodes spécifiques).