+ 1
When type of the object is determined at run-time, it is known as dynamic binding.
class Animal{  Â
void eat(){
System.out.println("animal is eating...");
}Â Â
}Â Â Â Â
class Dog extends Animal{
void eat(){
System.out.println("dog is eating...");
}
}
public static void main(String args[]){
Animal a=new Dog();   Â
a.eat();Â
 }
Output
dog is eating...
In the above example object type cannot be determined by the compiler, because the instance of Dog is also an instance of Animal.So compiler doesn't know its type, only its base type.
http://www.javatpoint.com/static-binding-and-dynamic-binding



