Dynamic dispatch è il meccanismo di runtime che decide quale implementazione di metodo eseguire in base al tipo effettivo dell'oggetto, non al tipo dichiarato della variabile. La maggior parte dei linguaggi basati su classi lo implementa con una virtual method table (vtable).
The vtable model
Ogni classe ha una tabella di puntatori alle sue implementazioni di metodo. Ogni oggetto contiene un puntatore nascosto alla vtable della sua classe. Una chiamata virtuale diventa:
