This is a very important interview question. Simply Compile-time polymorphism is known as overriding and Run-time polymorphism is known as overloading. I think you may know about the differences between both overloading and overriding.
But the question is, If someone asked why it is called compile-time polymorphism and run-time polymorphism? Let's try to find out the answers by examples.
Overriding is called run-time polymorphism. WHY
Look at the following example.
In this example, I've created a parent class, a child class, and the main class. Then I have created a Child object by Parent reference.
Compile-time
- In compile time it takes care of the Parent reference. Because objects are created in the run time.
- First, it checks is there any eat
( ) method in the Parent class. - In this example Parent class has
eat ( ) method. - So it doesn't give any exception in the compile-time and the compilation will be a success.
Run time
- AT the run time it takes care of the Child reference and it creates the new child object.
- Then it checks is there any eat
( ) method in Child class. - There is an eat
( ) method in Child also. Then this method will be called at the run time. - It means object creation is happening at the run time by JVM and Run time is responsible to call which eat
( ) method to call. - That is why it is called run-time polymorphism (Dynamic polymorphism)
Overloading is called compile-time polymorphism. WHY ???
Look at the following example.
In this case, a single class has the same methods with two different parameters. As you know it is called method overloading.
Compile-time
- In compile time it
checks animal . eat ( ) method in Animal class. - No
arg eat ( ) method is there in the animal class. - According to the parameter list, it will call which method should be called.
- Then the compilation is OK.
Run time
- At the run time it creates the same Animal type object.
- Then it checks the same thing that it did at the compile time.
- It means compile time is enough to check which method should be called.
- That is why it is called Compile time polymorphism
( Static polymorphism).
Finally
Overriding = run-time polymorphism = dynamic polymorphism
Overloading = compile-time polymorphism = static polymorphism
Compile-time polymorphism vs Run-time polymorphism
Reviewed by Ravi Yasas
on
12:56 PM
Rating:

Good blog,Great experience for me by reading this article.
ReplyDeletecore java training in chennai
core java Training in Tnagar
c c++ course fees in chennai
c c++ courses in chennai
C Language Training
javascript training in chennai
Appium Training in Chennai
JMeter Training in Chennai
Hearty thanks to you admin, your blog is awesome and helpful. Keep your blog with latest information.
ReplyDeleteEthical Hacking course in Chennai
Ethical Hacking Training in Chennai
Hacking classes in Chennai
ccna course in Chennai
Salesforce Training in Chennai
Angular 7 Training in Chennai
Web Designing course in Chennai
Ethical Hacking course in Thiruvanmiyur
Ethical Hacking course in Porur
Ethical Hacking course in Adyar
Nicely Explained Thank you
ReplyDelete