Subclass içinde override edilmiş(overload değil!) bir metod çağırıldığında, subclass içindekinin mi yoksa superclass içindekinin mi çağırılacağının run-time sırasında dinamik olarak belirlenmesine Dynamic Dispatch denir.
Hemen bir örnekle : şeklinde iki class’ım olsun. Kopek sınıfımı, Hayvan sınıfımdan türetmiş olayım. Aşağıdaki işlem sırasında; minnos’un çıkaracağı ses bellidir -> “AbidikGubidik” fino.sesCikar() fonksiyonu çağırıldığındaysa Dynamic Dispatch yapılır. fino’nun referansı hayvan olsa bile, Kopek sınıfıyla initialize edildiğinden fino “BarkHavBarkHav” sesi çıkaracaktır.
Not : Java’da override ettiğiniz bir metodun önüne @Override notunu(annotation) yazmasanız da olur. Yazarsanız, compile time errorların azalmasına, compilerın daha kolay işini görmesine yardımcı olursunuz.