Skip to main content

Polymorphism in Java

Polymorphism in Java is a concept by which we can perform a single action in different ways. Polymorphism is derived from 2 Greek words: poly and morphs. The word "poly" means many and "morphs" means forms. So polymorphism means many forms.
There are two types of polymorphism in Java: compile-time polymorphism and runtime polymorphism. We can perform polymorphism in java by method overloading and method overriding.


If you overload a static method in Java, it is the example of compile time polymorphism. Here, we will focus on runtime polymorphism in java.

Polymorphism in Java

Polymorphism in Java is a concept by which we can perform a single action in different ways. Polymorphism is derived from 2 Greek words: poly and morphs. The word "poly" means many and "morphs" means forms. So polymorphism means many forms.
There are two types of polymorphism in Java: compile-time polymorphism and runtime polymorphism. We can perform polymorphism in java by method overloading and method overriding.
If you overload a static method in Java, it is the example of compile time polymorphism. Here, we will focus on runtime polymorphism in java.

Runtime Polymorphism in Java
Runtime polymorphism or Dynamic Method Dispatch is a process in which a call to an overridden method is resolved at runtime rather than compile-time.
In this process, an overridden method is called through the reference variable of a superclass. The determination of the method to be called is based on the object being referred to by the reference variable.
Let's first understand the upcasting before Runtime Polymorphism.

Upcasting

If the reference variable of Parent class refers to the object of Child class, it is known as upcasting. For example:
Upcasting in Java

Program

class Bank
{  
float getRateOfInterest()
{
return 0;
}  
}  
class SBI extends Bank
{  
float getRateOfInterest()
{
return 8.4f;
}  
}  
class ICICI extends Bank
{
float getRateOfInterest()
{
return 7.3f;
}  
}  
class AXIS extends Bank
{  
float getRateOfInterest()
{
return 9.7f;
}  
}  
class TestPolymorphism
{  
public static void main(String args[])
{  
Bank b;  
b=new SBI();  
System.out.println("SBI Rate of Interest: "+b.getRateOfInterest());  
b=new ICICI();  
System.out.println("ICICI Rate of Interest: "+b.getRateOfInterest());  
b=new AXIS();  
System.out.println("AXIS Rate of Interest: "+b.getRateOfInterest());  
}  
}  


Output:-

>javac TestPolymorphism.java
>Exit code: 0
>java -cp . TestPolymorphism
SBI Rate of Interest: 8.4
ICICI Rate of Interest: 7.3
AXIS Rate of Interest: 9.7
>Exit code: 0


Example No 2


class Animal
{
void eat()
{
System.out.println("Eating");
}
}
class Dog extends Animal
{
void eat()
{
System.out.println("Dog Are Eating");
}
}
class  babydog extends Dog
{
void eat()
{
System.out.println("Baby Dog is Eting");
}

public static void main(String args[])
{
Animal b1,b2,b3;
b1=new Animal();
b2=new Dog();
b3=new babydog();
b1.eat();
b2.eat();
b3.eat();
}

}

Output:-
>javac babydog.java
>Exit code: 0
>java -cp . babydog
Eating
Dog Are Eating
Baby Dog is Eting

>Exit code: 0

Comments

Contact Form

Name

Email *

Message *

Popular posts from this blog

Microsoft SQL Server 2019 Serial Key For All Edition

  Microsoft SQL Server 2019 Enterprise Edition HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Microsoft SQL Server 2019 Enterprise Core Edition 2C9JR-K3RNG-QD4M4-JQ2HR-8468J Microsoft SQL Server 2019 Standard Edition PMBDC-FXVM3-T777P-N4FY8-PKFF4 SQL Server2019 key   SQL Server 2019 Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4 SQL Server 2017 Enterprise:TDKQD-PKV44-PJT4N-TCJG2-3YJ6B Enterprise Core:6GPYM-VHN83-PHDM2-Q9T2R-KBV83 Strandard:PHDV4-3VJWD-N7JVP-FGPKY-XBV89 Web:WV79P-7K6YG-T7QFN-M3WHF-37BXC SQL Server 2016 Enterprise:MDCJV-3YX8N-WG89M-KV443-G8249 Enterprise Core:TBR8B-BXC4Y-298NV-PYTBY-G3BCP Standard:B9GQY-GBG4J-282NY-QRG4X-KQBCR Web:BXJTY-X3GNH-WHTHG-8V3XK-T8243 SQL Server 2014 Business Intelligence:GJPF4-7PTW4-BB9JH-BVP6M-WFTMJ Developer:82YJF-9RP6B-YQV9M-VXQFR-YJBGX Enterprise:27HMJ-GH7P9-X2TTB-WPHQC-RG79R Enterprise Core:TJYBJ-8YGH6-QK2JJ-M9DFB-D7M9D Strandard:P7FRV-Y6X6Y-Y8C6Q-TB4QR-DMTTK Web:J9MBB-R8PMP-R8WTW-8JJRD-C6GGW

MIUI 11 roadmap revealed: What to know about MIUI 11, and when to expect it

MIUI 11  has been available in China for a short while now, but  Xiaomi  users outside its home market don’t have to wait long. The company has launched MIUI 11 in India, while also issuing a device roadmap for the update. According to a post by the  MIUI India Twitter account , the latest MIUI update will start rolling out from October 22 to October 31. This first wave will target the  Poco F1 ,  Redmi K20 ,  Redmi Y3 ,  Redmi 7 ,  Redmi Note 7 ,  Redmi Note 7S , and  Redmi Note 7 Pro . "> MIUI India {"uid":0.8039879768599738,"hostPeerName":"https://www-androidauthority-com.cdn.ampproject.org","initialGeometry":"{\"windowCoords_t\":0,\"windowCoords_r\":360,\"windowCoords_b\":645,\"windowCoords_l\":0,\"frameCoords_t\":1483,\"frameCoords_r\":330,\"frameCoords_b\":1733,\"frameCoords_l\":30,\"posCoords_t\...

Xiaomi Launches Redmi Note 6 Pro in India, Starting at Rs 13,999

Xiaomi’s highly-anticipated Redmi Note 6 Pro is finally here in India. The company unveiled the phone today at an event in New Delhi. The Redmi Note 6 Pro is Xiaomi’s first quad-camera smartphone to launch in the country. It also has notable upgrades over the last year’s Redmi Note 5 Pro, so let’s take a look. Pricing and Availability The Redmi Note 6 Pro starts at Rs. 13,999 for the base variant. The variant with 6GB RAM/ 64GB internal storage is priced at Rs. 15,999. The phone will be available starting tomorrow, and you’ll be able to grab one  from Flipkart , Mi.com and Mi Home Stores across the country. Here’s the Redmi Note 6 Pro in all its glory:     And  as part of the Black Friday sale, the Redmi Note 6 Pro will be available for a special price  on November 23, i.e tomorrow. You’ll be able to buy the Redmi Note 6 Pro for a starting price of just Rs. 12,999, and the top end variant will be ava...