2013-04-01 14 views
-3

幫我解決這個重載計劃得到錯誤的重載程序

public class Overloading 
{ 
void add() 
{ 
    System.out.println("Default"); 
} 
void add(int a) 
{ 
    System.out.println("One Int Parameter is passed"+a); 
} 
void add(int a,int b) 
{ 
    System.out.println("Two Int Parameter is passed"+a+" "+b); 
} 
    void add(int a,int b,int c) 
{ 
    System.out.println("Three Int Parameter is passed"+a+" "+b+" "+c); 
} 
void add(char x) 
{ 
    System.out.println("One Char Parameter is passed"+x); 
} 
void add(char x,char y) 
{ 
    System.out.println("Two Char Parameter is passed"+x+" "+y); 
} 
    void add(char x,char y,char z) 
{ 
    System.out.println("Three Int Parameter is passed"+x+" "+y+" "+z); 
} 
public static void main(String []args) 
{ 
    Overloading d=new Overloading(); 
    d.add(z); 
} 
} 

當我使用d.add(1)或其他的東西它的工作原理,但使用d.add(「P」),它不工作 幫我傢伙.... 和thanx提前

+0

嘗試添加'd.add( 'P')',將工作:) – Parth

+0

@AnoopKumarSharma:你應該始終* *很多關於更清晰你的意思是「不工作」。請閱讀http://tinyurl.com/so-list –

+0

thanax codemaker它的工作原理 –

回答

0

通過使用此電話:

d.add("p");// you are calling a add() with parameter of type string 

沒有這樣多的方法,因此導致了錯誤。 爲了使其工作枯萎使用:

d.add('p');// considered as char parameter 

或添加字符串參數的方法:

void add(String x) 
{ 
    System.out.println("One String Parameter is passed"+x); 
} 

希望這將有助於!

0

"1"是字符串和'1'是性格。你需要字符而不是字符串。

所以做

d.add('p'); 
0

試試這個:

d.add('p'); 

void add(char x)方法需要參數特性不串。 'p'是字符,而"p"是字符串。

0

也許因爲「p」是string,而您只有方法接受char。你需要另一個重載:

void add(string s) 
0

請更改d.add("p");

d.add('p'); 

因爲char是 'P' 不是 「P」(這是字符串類型,它需要add(string s){}功能 - 你錯過) 你還可以添加:

void add(string s) 
{ 
    System.out.println("One string Parameter is passed"+s); 
} 
0

,你應該使用,

d.add('p'); 

因爲你的重載是char而不是string。

1

,如果你這樣調用它的工作原理:

d.add('p');