Static Binding and Dynamic Binding
Connecting a method call to the method body is known as binding.
There are two types of binding
- static binding (also known as early binding).
- dynamic binding (also known as late binding).
Let's understand the type of instance.
1) variables have a type
Each variable has a type, it may be primitive and non-primitive.
Here data variable is a type of int.
2) References have a type
3) Objects have a type
|An object is an instance of particular java class,but it is also an instance of its superclass.|
|Here d1 is an instance of Dog class, but it is also an instance of Animal.|
When type of the object is determined at compiled time(by the compiler), it is known as static binding.
If there is any private, final or static method in a class, there is static binding.
Example of static binding
When type of the object is determined at run-time, it is known as dynamic binding.
Example of dynamic binding
Test it Now
|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.|