Dynamic dispatch este mecanismul de timp de rulare care decide care implementare de metodă să se execute pe baza tipului real al obiectului, nu tipul declarat al variabilei. Majoritatea limbajelor bazate pe clase implementează acest lucru cu o tabelă de metode virtuale (vtable).
Modelul vtable
Fiecare clasă are o tabelă de pointeri către implementările sale de metodă. Fiecare obiect conține un pointer ascuns către vtable-ul clasei sale. Un apel virtual funcționează astfel:
