Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

1 .

Implement Addition and Subtraction


methods to demonstrate overloaded methods
and constructors. 

If a class has multiple methods having same name


but different in parameters, it is known as Method
Overloading.
If we have to perform only one operation, having
same name of the methods increases the
readability of the program.
Suppose you have to perform addition of the
given numbers but there can be any number of
arguments, if you write the method such as
a(int,int) for two parameters, and b(int,int,int) for
three parameters then it may be difficult for you as
well as other programmers to understand the
behavior of the method because its name differs.
So, we perform method overloading to figure out
the program quickly.
Advantage of method overloading
Method overloading increases the readability of the
program.
Different ways to overload the method
There are two ways to overload the method in java
1. By changing number of arguments
2. By changing the data type
1) Method Overloading: changing no. of
arguments
In this example, we have created two methods, first
add() method performs addition of two numbers
and second add method performs addition of
three numbers.
In this example, we are creating static methods so
that we don't need to create instance for calling
methods.
1. class Adder{  
2. static int add(int a,int b){return a+b;}  
3. static int add(int a,int b,int c){return a+b+c;}  
4. }  
5. class TestOverloading1{  
6. public static void main(String[] args){  
7. System.out.println(Adder.add(11,11));  
8. System.out.println(Adder.add(11,11,11));  
9. }}  
2.What restrictions are placed on method
overloading?

Rules to be followed for method overloading


While overloading you need to keep the following
points in mind −
 Both methods should be in the same class.
 The name of the methods should be same but

they should have different number or, type of


parameters.
If the names are different they will become
different methods and, if they have same name
and parameters a compile time error will be
thrown saying “method already defined”.
Example
class Test{
public int division(int a, int b){
int result = a/b;
return result;
}
public double division (int a, int b){
double result = a/b;
return result;
}
}
Compile time error
OverloadingExample.java:6: error: method division(int,
int) is already defined in class Test
public static double division (int a, int b){
           ^
1 error
3.How are this() and super() used with
constructors?

Java requires that if you call this() or super() in a


constructor, it must be the first statement. Why?
For example:
public class MyClass {
public MyClass(int x) {}
}

public class MySubClass extends MyClass {


public MySubClass(int a, int b) {
int c = a + b;
super(c); // COMPILE ERROR
}
}
The Sun compiler says, call to super must be first
statement in constructor. The Eclipse compiler
says, Constructor call must be the first statement in a
constructor.
However, you can get around this by re-arranging
the code a little bit:
public class MySubClass extends MyClass {
public MySubClass(int a, int b) {
super(a + b); // OK
}
}
Here is another example:
public class MyClass {
public MyClass(List list) {}
}

public class MySubClassA extends MyClass {


public MySubClassA(Object item) {
// Create a list that contains the item, and pass the
list to super
List list = new ArrayList();
list.add(item);
super(list); // COMPILE ERROR
}
}

public class MySubClassB extends MyClass {


public MySubClassB(Object item) {
// Create a list that contains the item, and pass the
list to super
super(Arrays.asList(new Object[] { item })); //
OK
}
}
So, it is not stopping you from executing
logic before the call to super(). It is just stopping
you from executing logic that you can't fit into a
single expression.
There are similar rules for calling this(). The
compiler says, call to this must be first statement in
constructor.
4.What is method overloading

Ans If a class has multiple methods having same


name but different in parameters, it is known
as Method Overloading.
If we have to perform only one operation, having
same name of the methods increases the
readability of the program.
Suppose you have to perform addition of the
given numbers but there can be any number of
arguments, if you write the method such as
a(int,int) for two parameters, and b(int,int,int) for
three parameters then it may be difficult for you as
well as other programmers to understand the
behavior of the method because its name differs.
So, we perform method overloading to figure out
the program quickly.
Advantage of method overloading
Method overloading increases the readability of the
program.
Different ways to overload the method
There are two ways to overload the method in java
1. By changing number of arguments
2. By changing the data type

You might also like