Think of a hotel front desk. You walk up and say,
“Please send someone to clean my room.”
You don’t specify who that is because it depends on which housekeeper is working.
The front desk checks the schedule, like a vtable.
The person assigned at that moment goes to clean your room.
In dynamic dispatch, your code makes a request to call a function. At runtime, the program checks which specific implementation to run before sending it to do the job.