Java Questions & Answers – Overloading Methods & Argument Passing

This section of our 1000+ Java MCQs focuses 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
View Answer

Answer: a
Explanation: 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
View Answer

Answer: c
Explanation: 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
View Answer

Answer: a
Explanation: 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.
advertisement
advertisement

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
View Answer

Answer: d
Explanation: None.

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

Note: Join free Sanfoundry classes at Telegram or Youtube
  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
View Answer

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

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
View Answer

Answer: c
Explanation: None.
output:

advertisement
$ 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
View Answer

Answer: c
Explanation: 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
View Answer

Answer: d
Explanation: 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
View Answer

Answer: a
Explanation: 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?

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

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

Answer: b
Explanation: 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:

$ javac Output.java
$ java Output
20 10

Sanfoundry Global Education & Learning Series – Java Programming Language.

If you find a mistake in question / option / answer, kindly take a screenshot and email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.