What is the process of defining two or more methods within same class that have same name but different parameter declaration?

Educative Answers Team

Overloading occurs when two or more methods in one class have the same method name but different parameters.

Overriding occurs when two methods have the same method name and parameters. One of the methods is in the parent class, and the other is in the child class. Overriding allows a child class to provide the specific implementation of a method that is already present in its parent class.​

The two examples below illustrate their differences:

The table below highlights their key differences:

  • Must have at least two methods by the same name in the class.

  • Must have a different number of parameters.

  • If the number of parameters is the same, then it must have different types of parameters.

  • Overloading is known as compile-time polymorphism.

  • Must have at least one method by the same name in both parent and child classes.

  • Must have the same number of parameters.

  • Must have the same parameter types.

  • Overriding is known as runtime polymorphism​.

Example codes

Overriding

Take a look at the code below:

class Dog{

public void bark(){

System.out.println("woof ");

}

}

class Hound extends Dog{

public void sniff(){

System.out.println("sniff ");

}

public void bark(){

System.out.println("bowl");

}

}

class OverridingTest{

public static void main(String [] args){

Dog dog = new Hound();

dog.bark();

}

}

In this overriding example, the dog variable is declared to be a Dog. During compile-time, the compiler checks if the Dog class has the bark() method. As long as the Dog class has the bark() method, the code compiles. At run-time, a Hound is created and assigned to dog, so, ​ it calls the bark() method of Hound.

Overloading

Take a look at the code below:

class Dog{

public void bark(){

System.out.println("woof ");

}

//overloading method

public void bark(int num){

for(int i=0; i<num; i++)

System.out.println("woof ");

}

}

In this overloading example, the two bark methods can be invoked using different parameters. The compiler knows that they are different because they have different method signatures​ (method name and method parameter list).

RELATED TAGS

overloading

overriding

classes

Copyright ©2022 Educative, Inc. All rights reserved

Java MCQs on overloading methods & argument passing in Java Programming Language.

1. What is the process of defining two or more methods within same class that have same name but different parameters declaration?
a) method overloading
b) method overriding
c) method hiding
d) none of the mentioned

Answer: a
Clarification: Two or more methods can have same name as long as their parameters declaration is different, the methods are said to be overloaded and process is called method overloading. Method overloading is a way by which Java implements polymorphism.

2. Which of these can be overloaded?
a) Methods
b) Constructors
c) All of the mentioned
d) None of the mentioned

Answer: c
Clarification: None.

3. Which of these is correct about passing an argument by call-by-value process?
a) Copy of argument is made into the formal parameter of the subroutine
b) Reference to original argument is passed to formal parameter of the subroutine
c) Copy of argument is made into the formal parameter of the subroutine and changes made on parameters of subroutine have effect on original argument
d) Reference to original argument is passed to formal parameter of the subroutine and changes made on parameters of subroutine have effect on original argument

Answer: a
Clarification: When we pass an argument by call-by-value a copy of argument is made into the formal parameter of the subroutine and changes made on parameters of subroutine have no effect on original argument, they remain the same.

4. What is the process of defining a method in terms of itself, that is a method that calls itself?
a) Polymorphism
b) Abstraction
c) Encapsulation
d) Recursion

Answer: d
Clarification: None.

5. What will be the output of the following Java code?

  1. class San
  2. {
  3. public void m1 (int i,float f)
  4. {
  5. System.out.println(" int float method");
  6. }
  7.  
  8. public void m1(float f,int i);
  9. {
  10. System.out.println("float int method");
  11. }
  12.  
  13. public static void main(String[]args)
  14. {
  15. San s=new San();
  16. s.m1(20,20);
  17. }
  18. }

a) int float method
b) float int method
c) compile time error
d) run time error

Answer: c
Clarification: While resolving overloaded method, compiler automatically promotes if exact match is not found. But in this case, which one to promote is an ambiguity.

6. What will be the output of the following Java code?

  1. class overload
  2. {
  3. int x;
  4. int y;
  5. void add(int a)
  6. {
  7. x = a + 1;
  8. }
  9. void add(int a, int b)
  10. {
  11. x = a + 2;
  12. }
  13. }
  14. class Overload_methods
  15. {
  16. public static void main(String args[])
  17. {
  18. overload obj = new overload();
  19. int a = 0;
  20. obj.add(6);
  21. System.out.println(obj.x);
  22. }
  23. }

a) 5
b) 6
c) 7
d) 8

Answer: c
Clarification: None.
output:

$ javac Overload_methods.java $ java Overload_methods 7

7. What will be the output of the following Java code?

  1. class overload
  2. {
  3. int x;
  4. int y;
  5. void add(int a)
  6. {
  7. x = a + 1;
  8. }
  9. void add(int a , int b)
  10. {
  11. x = a + 2;
  12. }
  13. }
  14. class Overload_methods
  15. {
  16. public static void main(String args[])
  17. {
  18. overload obj = new overload();
  19. int a = 0;
  20. obj.add(6, 7);
  21. System.out.println(obj.x);
  22. }
  23. }

a) 6
b) 7
c) 8
d) 9

Answer: c
Clarification: None.
output:

$ javac Overload_methods.java $ java Overload_methods 8

8. What will be the output of the following Java code?

  1. class overload
  2. {
  3. int x;
  4. double y;
  5. void add(int a , int b)
  6. {
  7. x = a + b;
  8. }
  9. void add(double c , double d)
  10. {
  11. y = c + d;
  12. }
  13. overload()
  14. {
  15. this.x = 0;
  16. this.y = 0;
  17. }
  18. }
  19. class Overload_methods
  20. {
  21. public static void main(String args[])
  22. {
  23. overload obj = new overload();
  24. int a = 2;
  25. double b = 3.2;
  26. obj.add(a, a);
  27. obj.add(b, b);
  28. System.out.println(obj.x + " " + obj.y);
  29. }
  30. }

a) 6 6
b) 6.4 6.4
c) 6.4 6
d) 4 6.4

Answer: d
Clarification: For obj.add(a,a); ,the function in line number 4 gets executed and value of x is 4. For the next function call, the function in line number 7 gets executed and value of y is 6.4
output:

$ javac Overload_methods.java $ java Overload_methods 4 6.4

9. What will be the output of the following Java code?

  1. class test
  2. {
  3. int a;
  4. int b;
  5. void meth(int i , int j)
  6. {
  7. i *= 2;
  8. j /= 2;
  9. }
  10. }
  11. class Output
  12. {
  13. public static void main(String args[])
  14. {
  15. test obj = new test();
  16. int a = 10;
  17. int b = 20;
  18. obj.meth(a , b);
  19. System.out.println(a + " " + b);
  20. }
  21. }

a) 10 20
b) 20 10
c) 20 40
d) 40 20

Answer: a
Clarification: Variables a & b are passed by value, copy of their values are made on formal parameters of function meth() that is i & j. Therefore changes done on i & j are not reflected back on original arguments. a & b remain 10 & 20 respectively.
output:

$ javac Output.java $ java Output 10 20

10. What will be the output of the following Java code?

a) 10 20
b) 20 10
c) 20 40
d) 40 20

Answer: b
Clarification: Class objects are always passed by reference, therefore changes done are reflected back on original arguments. obj.meth(obj) sends object obj as parameter whose variables a & b are multiplied and divided by 2 respectively by meth() function of class test. a & b becomes 20 & 10 respectively.
output:

What is the process of defining two or more methods within same class that have same name but different parameters declaration in Java?

If a class has multiple methods having same name but parameters of the method should be different is known as Method Overloading.

When 2 or more methods in the same class have the same name it is called method?

Having two or more methods named the same in the same class is called overloading. It's not overloading if you have the same method name in two different classes.

What is the process of defining more than one method in a class having the same name but differentiated by method signature?

Explanation: Function overloading is a process of defining more than one method in a class with same name differentiated by function signature i:e return type or parameters type and number.

Toplist

Neuester Beitrag

Stichworte