Dynamic dispatch وہ runtime mechanism ہے جو یہ فیصلہ کرتی ہے کہ کون سی method implementation چلائی جائے، یہ فیصلہ object کی اصل type کی بنیاد پر ہوتا ہے، نہ کہ variable کی declared type کی بنیاد پر۔ اکثر class-based languages اسے virtual method table (vtable) کے ذریعے implement کرتی ہیں۔
vtable model
ہر class کے پاس اس کی method implementations کے pointers کا ایک table ہوتا ہے۔ ہر object اپنے class کے vtable کی طرف ایک hidden pointer رکھتا ہے۔ ایک virtual call بن جاتی ہے:
