Whenever a two or more methods have the same name but different behaviors or parameters, it is called method overloading.
A good example of method overloading is a set (or a pair) of people with the same name. A very good example to understand this are social networking sites. Let's say that there are two people with the name Aphrodite Keys on Facebook. The first Aphrodite Keys is a famous celebrity, while the second is just a poser.
Between the two Aphrodite Keys, it is obvious that both have the same name. It is also obvious that both have different personalities and behaviors. The original Aphrodite Keys posts updates regarding her work and insights of life honestly, while the poser Aphrodite Keys posts different things that may help gain her social network fame.
Given the codes below....
class CodeGalaxy
{
public int sum;
public CodeGalaxy()
{
sum = 0;
}
public void Add(int num1, int num2)
{
sum = num1 + num2;
}
public void Add(int num1, int num2, int num3)
{
sum=int1+num2+num3;
}
public void Add(int num1)
{
sum = num1;
}
}
The code of the main class is the following:
public class UseGalaxy
{
public static void mai (String args[])
{
CodeGalaxy planet = new CodeGalaxy();
planet.Add(2,3);
planet.Add(1,2,3);
planet.Add(100);
}
}
Using the first planet.Add with parameters 2 and 3, the values are passed on the first (public void) Add in your object. The values of the second planet.Add with parameters 1,2 and 3, are passed on the second (public void) Add in your object. The last planet.Add with 1 as its parameter is passed on the last method in your object.
The main idea is: You cannot pass planet.Add(2,3) to the second method in your object with public void Add(int1, int2, int3) since planet.Add has only two values and the method requires three values. Therefore, in order to use planet.Add(2,3), the values are passed on the first method with public void Add(int1,int2)