Software Development

Polymorphism in Java |

Written by admin

A key idea of object-oriented programming (OOP) is polymorphism, which allows builders to put in writing code that may work otherwise based mostly on the context, makes your code extra versatile, and extensible.

On this Java programming tutorial, you’ll study polymorphism, its advantages and drawbacks, and the several types of polymorphism in Java with pattern applications wherever applicable.

Seeking to study Java in a category or on-line course? We now have an inventory of the High On-line Programs to Be taught Java to assist get you began.

What’s Polymorphism in Java?

The ability of object-oriented programming lies in its simplicity. The idea of polymorphism is without doubt one of the cornerstones of object-oriented programming. In truth, it’s a key factor of what makes OOP so highly effective.

Polymorphism permits programmers to reuse code — you possibly can create a general-purpose technique that may deal with a number of varieties of information, after which have totally different implementations of this technique that may work otherwise based mostly on the context. This protects builders from having to rewrite the identical code over and over to accommodate differing types or configurations.

Whereas the which means of the phrase “poly” is “many”, the phrase “morphos” means “varieties”. Therefore, the phrase polymorphism implies the existence of the identical factor in differing varieties. It’s a approach of implementing abstraction; it’s the capability to make use of a single interface to deal with many several types of information. You possibly can benefit from polymorphism to reuse code and make your code versatile.

Polymorphism, within the context of Java, signifies that the identical technique identify will be applied in several methods, relying on the information sort. A easy implementation of polymorphism will be an summary class referred to as Form that implements an space() technique, which returns the world of any form whose sort is derived from Form (i.e., Sq., Circle, and Triangle, and so on).

Advantages and Downsides of Polymorphism in Java

Polymorphism is the power to override a way or class and use it in a couple of context. It permits us to put in writing versatile code that may be prolonged and reused in many various conditions. Polymorphism can enable totally different courses to share widespread performance whereas nonetheless sustaining their very own particular person conduct.

Nonetheless, there are some downsides as nicely: since polymorphism depends on inheritance, it requires inheritance, which in itself shouldn’t be favored for utility efficiency since you may need to create a number of objects in your utility to resolve the calls to the strategies unfold throughout totally different courses, which will be cumbersome.

Moreover, in case you are not cautious along with your design selections, polymorphism can result in difficult conditions the place varieties change into tangled and obscure or keep in the long term.

Learn: Greatest Instruments for Distant Builders

What are the Totally different Kinds of Polymorphism in Java?

Polymorphism refers back to the capability to make use of objects of a given class otherwise relying on the article’s runtime sort. Polymorphism can broadly be categorized into two varieties: Dynamic Polymorphism or Late Binding and Static Polymorphism – or, Early Binding.

Static polymorphism is a type of polymorphism the place the kind of an object is thought at compile time, (i.e., the compiler can determine which technique to name at compile time with no need to know the precise runtime sort of the article).

Static polymorphism is named early binding as a result of it occurs at compile time and never at runtime like dynamic polymorphism. Static or compile time polymorphism (often known as operate overloading) is a kind of polymorphism that permits you to create strategies which have similar names however differ of their signatures.

For instance, chances are you’ll create an add operate that can be utilized so as to add two numbers collectively, or three numbers collectively, or 4 numbers collectively. One other instance of static polymorphism – or compile-time polymorphism – is operator overloading, which permits programmers to outline how operators resembling +, , *, and / work with totally different information varieties.

Therefore, you possibly can overload the + operator so as to concatenate two strings or add two integers. Chances are you’ll write a operate that may print out the main points of any object, with out realizing the precise sort of the article forward of time.

The next code instance illustrates how one can implement operate overloading or technique overloading in Java:

public class HelloWorld{
     public static void primary(String []args){
        System.out.println(MathHelper.Add(5, 9));
        System.out.println("n" + MathHelper.Add(9.8, 5.7));
class MathHelper {
    static int Add(int x, int y)
        return x + y;
    static double Add(double x, double y)
        return x + y;

Dynamic polymorphism is a selected sort of polymorphism the place the article sort shouldn’t be recognized till runtime, thus making it dynamic. Dynamic polymorphism is often known as late binding for the reason that runtime can decide the article sort solely when this system is in execution, i.e., at runtime.

Dynamic – or runtime polymorphism – is a kind of polymorphism during which the decision to a operate is resolved solely at runtime. It permits you to write code that’s versatile and might work with objects of various varieties with out realizing the precise sort of object prematurely.

The next code instance illustrates how one can implement late binding in Java:

summary class Base {
    public void show() {
    System.out.println("That is the show technique of the bottom class.");
public class Derived extends Base {
    public void show() {
    System.out.println("That is the show technique of the derived class");
    public static void primary(String args[]) {
        Base obj = new Derived();;

Once you execute the previous code itemizing, the next textual content message shall be displayed on the console window:

Java polymorphism examples

Closing Ideas on Polymorphism in Java

Polymorphism is an integral a part of object-oriented programming generally and Java, so it’s important to understand how polymorphism works to make use of it successfully. Polymorphism can assist you write code that’s easy, strong, versatile, and straightforward to take care of. On this programming tutorial, we’ve got examined the ideas associated to polymorphism, its advantages and drawbacks and the way it may be applied in Java.

Learn extra Java programming tutorials and software program growth suggestions.

About the author


Leave a Comment