Home » Core Java » Overloading Java Methods Example

About Rajagopal ParthaSarathi

Rajagopal works in software industry solving enterprise-scale problems for customers across geographies specializing in distributed platforms. He holds a masters in computer science with focus on cloud computing from Illinois Institute of Technology. His current interests include data science and distributed computing.

Overloading Java Methods Example

In this post, we feature a comprehensive article on Overloading Java Methods. Overloaded methods are methods with the same name signature but either a different number of parameters or different types in the parameter list. It is similar to constructor overloading, that allows a class to have more than one constructor having different argument lists. Method overloading is an example of Static Polymorphism also known as compile time binding or early binding where binding of method call to its definition happens at compile time.

1. Method Overloading

Let’s look at an example of method overloading. We have created a class, that has methods with the same names but with different arguments and use them in new class instances to see their behavior.

Overloading Example
public class OverloadingDemo {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        System.out.println(calculator.add(2, 3));
        System.out.println(calculator.add(2.0, 3.0));
    }
}

class Calculator {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
}
  • We create a simple class Calculator which has only the default constructor.
  • We have a add method to add two integers.
  • To extend the functionality of calculator to add two floats or doubles, another add method is supplied with doublearguments.
  • Calculator class is initialized with the values to demonstrate the example.
Output
5
5.0

 To the external world, there is only one add method which handles different inputs. Internally we can support multiple different behaviors based on input and argument types.

Considering the above, we can add one more variant of method overloading.

int add(int a, int b, int c) {
        return a + b + c;
 }

System.out.println(calculator.add(2, 3, 4));

Adding the above method, gives the flexibility to add three numbers. Here with the same method name we get different results.

9

2. Difference with Overriding

Method overriding allows a subclass to provide a specific implementation of a method that is already provided by one of its parent classes. The implementation in the subclass overrides the implementation in the super class by providing a method that has the same name, same parameters or signature, and same return type as the method in the parent class. The version of a method that is executed will be determined by the object that is used to invoke it. Method overriding is an example of Dynamic Polymorphism also known as Runtime binding or late binding where binding of method call to its definition happens during run time. Let us consider an example to illustrate

Overriding Example
class Calculator {
   ...
    double pow(double a, double b) {
        return 0;
    }
}

class ScientificCalculator extends Calculator {
    @Override
    double pow(double a, double b) {
        return Math.pow(a, b);
    }
}

public class OverloadingDemo {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        System.out.println(calculator.pow(2.0, 3.0));
        calculator = new ScientificCalculator();
        System.out.println(calculator.pow(2.0, 3.0));
    }
}
  • Add a pow method in Calculator class to raise power of a to b.
  • Since this is normal calculator it just returns zero
  • We define a ScientificCalculator which does the actual power function.
  • Calling pow of parent class calculator will return 0 while child class will return the correct result

3. Download the Source code

This was an example of Overloading Java Methods.

Download
You can download the full source code of this example here: Overloading Java Methods Example

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

 

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments