Java Static and Dynamic Binding2 min read

Association of the method call to the method body is known as binding. There are two types of binding in java:

  • Static binding.
  • Dynamic bindinng.

1. Static Binding or Early Binding in Java:

The binding that resolved at compile time is known as Static Binding or Early Binding. There are three methods that cannot be overridden and the type of the class is determined at the compile time. They are static, private and final methods. They are bind at compile time. In this type, the compiler knows the type of object or class to which object belongs to during the execution.

Example of Static Binding or Early Binding in Java:

Output of Static Binding:

In this above example, two objects are created (sup, sub) of different types referring to the same class type(SuperClass type). Here the display() method of SuperClass is static, and therefore compiler knows that it will not be overridden in subclasses and also knows which display() method to call and hence no ambiguity.


2. Dynamic Binding or Late Binding in Java:

The binding that resolved at run time is known as Static Binding or Late Binding. The perfect example of this would be Overriding. Consider a method overriding where parent class and child class has the same method.

Example Dynamic Binding in Java:
In the following example, the overriding of a method is possible because no methods are declared static, private, and final.

Output of Dynamic Binding:


Packages.
this keyword.