-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") 它不起作用帮助我,伙计们....并提前感谢

4

7 回答 7

1

如果你这样称呼它,它会起作用:

d.add('p');
于 2013-04-01T11:30:20.477 回答
0

"1"是字符串,'1'是字符。您需要这里的字符而不是字符串。

也一样

d.add('p');
于 2013-04-01T11:26:12.580 回答
0

试试这个:

d.add('p');

您的void add(char x)方法采用参数字符而不是字符串。'p'是字符,"p"而是字符串。

于 2013-04-01T11:26:24.323 回答
0

也许是因为 "p" 是 a string,而您只有接受 a 的方法char。你需要另一个重载:

void add(string s)
于 2013-04-01T11:26:24.647 回答
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);
}
于 2013-04-01T11:27:14.303 回答
0

你应该使用,

d.add('p');

因为您的重载是针对字符而不是针对字符串的。

于 2013-04-01T11:27:15.493 回答
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);
}

希望它会有所帮助!

于 2013-04-01T11:27:22.457 回答