Difference between compile-time polymorphism and runtime polymorphism

Polymorphism is one of the most important OOPs concepts. Its is a concept by which we can perform single task in multiple ways. There are two types of polymorphism one is Compile-time polymorphism and another is run-time polymorphism.

Method overloading is the example of compile time polymorphism and  method overriding is the example of run-time polymorphism.

Sr. No. Key Compile-time polymorphism Runtime polymorphism
1 Basic Compile time polymorphism means binding is occuring at compile time R un time polymorphism where at run time we came to know which method is going to invoke
2 Static/DynamicBinding It can be achieved through static binding It can be achieved through dynamic binding
4. Inheritance Inheritance is not involved Inheritance is involved
5 Example Method overloading is  an example of compile time polymorphism Method overriding is an example of runtime polymorphism

Example of Compile-time Polymorphism

<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Main</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> args</span><span class="pun">[])</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">CompileTimePloymorphismExample</span><span class="pln"> obj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">CompileTimePloymorphismExample</span><span class="pun">();</span><span class="pln">
      obj</span><span class="pun">.</span><span class="pln">display</span><span class="pun">();</span><span class="pln">
      obj</span><span class="pun">.</span><span class="pln">display</span><span class="pun">(</span><span class="str">"Polymorphism"</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">CompileTimePloymorphismExample</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"In Display without parameter"</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
   </span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> </span><span class="kwd">value</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"In Display with parameter"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> </span><span class="kwd">value</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>

Example of Runtime Polymorphism

<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Main</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> args</span><span class="pun">[])</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">RunTimePolymorphismParentClassExample</span><span class="pln"> obj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">RunTimePolymorphismSubClassExample</span><span class="pun">();</span><span class="pln">
      obj</span><span class="pun">.</span><span class="pln">display</span><span class="pun">();</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">RunTimePolymorphismParentClassExample</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Overridden Method"</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">RunTimePolymorphismSubClassExample</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">RunTimePolymorphismParentExample</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> display</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Overriding Method"</span><span class="pun">);</span><span class="pln">
   </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span>
Updated on: 2023-09-12T09:54:51+05:30

37K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements