<p>I understand how the implementation of dynamic binding works and also the difference between static and dynamic binding, I am just having trouble wrapping my brain around the definition of dynamic binding. Basically other than it is a run-time binding type.</p>

I understand it being evident in polymorphism.  Typically when creating multiple classes that derive from a base class.  If each one of the derived classes contains a function that each one uses.  The base class can be used to execute a function of the derived classs and it will be properly call the correct function.
For example:
```
```
class Animal
{
void talk();
}

class Dog extends Animal
{
public void talk() { System.out.println("woof"); }
}

class Cat extends Animal
{
public void talk() { System.out.println("meow"); }
}

....
Animal zoo[2];
zoo[0] = new Dog();
zoo[1] = new Cat();

for(Animal animalToggle: zoo)
{
animalToggle.talk();
}
```
```
will print:
woof
meow
My interpretation hopefully it helps.