Differences between Dynamic Binding and Message Passing in Java

Dynamic Binding: In Dynamic binding compiler doesn’t decide the method to be called. Overriding is a perfect example of dynamic binding. In overriding both parent and child classes have the same method. Dynamic binding is also called Late binding.

Message Passing:
Message Passing in terms of computers is communication between processes. It is a form of communication used in object-oriented programming as well as parallel programming. Message passing in Java is like sending an object i.e. message from one thread to another thread. It is used when threads do not have shared memory and are unable to share monitors or semaphores or any other shared variables to communicate. Suppose we consider an example of producer and consumer, likewise what producer will produce, the consumer will be able to consume that only. We mostly use Queue to implement communication between threads.

Let’s see the differences between Dynamic Binding and Message Passing:

Dynamic Binding Message Passing
Binding refers to the linking of a procedure call to the code to be executed in response to the call. The process of programming in which communication is involved is known as message passing.
It allows execution of different codes using the same object at runtime. It allows developing communication between objects.
The usage of Dynamic binding to allow executing different codes using the same object at runtime. It involves three basic steps. They are:

  • Creating classes
  • Creating objects
  • Establishing communication among objects.
  • It is the method of linking a procedure call to the relevant code that will be executed only at runtime. Message passing is the method of exchanging message between objects in Object Oriented Programming.
    The code associated with the procedure is not known until the program is executed. This process is known as late binding. Message passing involves name of the objects, the name of the function and the information to be sent.
    A function call associated with a polymorphic reference depends on the dynamic type of that reference. Communication with an object is feasible as long as it is alive.
    In dynamic binding, only at run time the code matching the object under current reference will be called. A message for an object is a request for execution of a procedure, and therefore invoke a function in the receiving object that generates the desired result.
    In short, dynamic binding occurs during runtime. Message passing occurs between two processes.
    Dynamic binding is also known as dynamic dispatch, late binding or run-time binding. Message passing is also known as message exchanging.
    Object based programming does not support dynamic binding. Object based programming support message passing.
    Object oriented programming support dynamic binding. Object oriented programming also support message passing.

    Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

    My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



    Improved By : akshara_a

    Article Tags :
    Practice Tags :


    Be the First to upvote.


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.