Tuesday, 15 June 2010

java - Overloading methods -



java - Overloading methods -

i saw below question posted on site.

"what happens when pass int arguments overloading method having float as parameter 1 method , having double param".

i thought understood concept , wrote code:

public class testclass { public static void main(string args[]) { testclass t=new testclass(); t.sum(1/4); } void sum(double d) { system.out.println("double==="+d); } void sum(int i) { system.out.println("integer==="+i); } void sum(short s) { system.out.println("short==="+d); } }

according understanding explained on site (as mentioned above), thought print short===0, surprise prints integer===0. can 1 explain me?

if don't explicitly tell compiler types of 1 , 4, assumes of type int. then, / operator apply integer partition , produce int (which 0.)

after that, method specific integer parameter type invoked. in case, sum(int i).

if want invoke of other overloaded methods, have explicitly:

do cast. example, sum((short) (1/4)); invoke sum(short s) due cast. point type of operands. example, sum(1d/4) invoke sum(double d), since 1d/4 result double

java methods method-overloading

No comments:

Post a Comment