• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

overloading confusion

 
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
01. public class Test {
02.
03. public long add(long x, int y) {
04. return x + y;
05. }
06.
07. public static void main(String[] args) {
08. byte x = 5;
09. int y = 6;
10. Test t = new Test();
11. t.add(5, 6);
12. }
13. }

which of the following methods can legally added to class Test?

the options:-

a.public long add(int x, long y) {return x + y;}
b.public int add(int x, int y) {return x + y;}
c.public byte add(byte x, byte y) {return x + y;}
d.public int add(int x, byte y) {return x + y;}
e.public short add(byte x, int y) {return x + y;}

the answers given is b and d.

this is given in http://www.aniyog.com/java/certification/java_mock_test.htm. But when I compiled and executed this all options were correct.

I think the answers given is worng.

plz someone help me on this confusion to get resolved....

Thanks in advance.
 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi!

Have you tried to compile your example?

The compiler refuses C and E. The result of the add operation is int, however int doesn't fit to the return type.

Anyway it's not clear, why the A couldn�t be an satisfied answer.
[ June 11, 2004: Message edited by: Wladimir Babitzki ]
 
anandkumar gangoni
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
yeah u r correct c and e give pbm becoz of return type incompatible pbm. And is also not giving error when I compiled. I think the answer given is worng.

Regards,
Anand.
 
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It is definitely include the option A in a class. It seems the question is little bit tricky. I think it was asked in the context of the given code.

t.add(5, 6);

This is the one which makes it illegal to include option A method declaration. Because these arguments fit into both option A method declaration and the existing method decalration. So JVM complains about the ambiguity. That is the reason why it is not legal to have the option A in the given class.
 
Baps Vakkalagadda
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Correction to my first sentence. I missed a couple of words while typing (It happens many times for me).

It is definitely legal to include the option A in a class. But It seems the question is little bit tricky.
 
anandkumar gangoni
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
but when I executed the code it compiled & executed with out errors. I am talking abt. option a.
 
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Anand

Option A will not work because it will lead to ambiguity. I have tried it. The error is -

reference to add is ambiguous, both method add(long,int) in Test3 and method add(int,long) in Test3 match

So you can very well add that method but then, you have to remove line 11. or you can cast the parameters - eg
 
Baps Vakkalagadda
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am not sure how did you make it compile. I copied the code that Anand posted and included the option A method definition. I tried with Java 1.4.2, 1.3.1 and 1.2.2 on Windows. All of these version complained the same.

Have you tried it on Mac or Linux?
 
anandkumar gangoni
Greenhorn
Posts: 16
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Shilpi

I compiled by including the option a and it worked well for me. I am not sure how u got that error.

but some time back I encountered a pretty similar pbm which had the same error as u said... at present I don't have that code snippet with me.

anyways thanks for ur views.
 
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I also succeed to compile the code with number "a". Besides, I found following from the book I refer-Complete Java2 Certification by Simom Roberts, Philip Heller and Michael Ernest.

--- from the book.
1. public void aMethod(String s){}
2. public void aMethod(){}
3. public void aMethod(int i, String s){}
4. public void aMethod(String s, int i) {}

"These methods all have identical return types and names, but their argument lists are different either in the types of the arguments that they take or in the order."
---

Hope it helps.
 
Would you turn that thing down? I'm controlling a mind here! Look ... look at the tiny ad ...
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic