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\...
Rumors for the  unveiling  of Xiaomi’s upcoming Android skin have proven true. The company will unveil MIUI 12, alongside Mi 10 Youth Edition 5G, on 27th April in its home country, China. We expect MIUI 12 beta ROMs to start rolling out for a select few phones even before the month comes to a close. Xiaomi made the announcement via an   official post   on Weibo earlier this morning. The company has shared a handful of teasers for both the MIUI 12 and Mi 10 Youth Edition 5G. There’s nothing you can guess about features debuting with the software skin. But, we have got a sneak peek at the newest addition to the Mi 10 lineup The rumor mill has been quite chatty about MIUI 12 features over the past week. We have also seen a couple of leaks recently, giving us a first look at the  new UI elements  and themes. The update is also expected to bring some parity in full-screen gestures. It’s going to  debut Android 10-like gestures , along with TÜV Rheinland cer...