डायनामिक डिस्पॅच हा रनटाइम मेकॅनिজम आहे जो निर्णय घेतो की कोणत्या मेथड इम्प्लिमेंटेशन चलवायचे हे ऑब्जेक्टच्या वास्तविक प्रकारानुसार निर्भर करते, व्हेरिएबलच्या घोषित प्रकारनुसार नाही. बहुतेक क्लास-आधारित भाषा हे व्हर्चुअल मेथड टेबल (vtable) द्वारे लागू करतात.
vtable मॉडल
प्रत्येक क्लासला त्याच्या मेथड इम्प्लिमेंटेशन्सचा पॉइंटर टेबल आहे. प्रत्येक ऑब्जेक्टला त्याच्या क्लासच्या vtable चा एक लपलेला पॉइंटर असतो. व्हर्चुअल कॉल असे होते: ऑब्जेक्टच्या vtable मध्ये मेथड शोधा, नंतर तेथे जा.
Animal a = new Dog();
a.speak();
a ──▶ Dog object ──▶ [Dog vtable]
speak() ──▶ Dog.speak() ← chosen at RUNTIME
