Dynamic dispatch to mechanizm czasu wykonania, który decyduje którą implementację metody uruchomić na podstawie rzeczywistego typu obiektu, a nie zadeklarowanego typu zmiennej. Większość języków opartych na klasach implementuje to za pomocą tabeli metod wirtualnych (vtable).
Model vtable
Każda klasa ma tabelę wskaźników do swoich implementacji metod. Każdy obiekt zawiera ukryty wskaźnik do vtable swojej klasy. Wirtualne wywołanie wygląda następująco:
