التوزيع الديناميكي هو آلية وقت التشغيل التي تحدد أي تطبيق method يتم تشغيله بناءً على النوع الفعلي للكائن وليس النوع المصرح به للمتغير. معظم اللغات القائمة على الفئات تطبقه باستخدام جدول الطرق الافتراضي (vtable).
نموذج vtable
كل فئة لديها جدول من المؤشرات إلى تطبيقات طرقها. كل كائن يحتفظ بمؤشر مخفي إلى vtable الخاص بفئته. يصبح استدعاء virtual: البحث عن الطريقة في vtable الخاص بالكائن، ثم الانتقال إلى هناك.
Animal a = new Dog();
a.speak();
a ──▶ Dog object ──▶ [Dog vtable]
speak() ──▶ Dog.speak() ← chosen at RUNTIME
