package asd;public class A { /**
 * @param args
 */

public String  re(String x,String y){

x+="aaaaa";
return x;
}
public String re(String x) {
return x;

}
public static void main(String[] args) {
// TODO Auto-generated method stub
                A a=new A();
System.out.print(a.re("bbbbb"));

}}
我的问题是在main函数里面调用re函数时,他会知道调用 re(String x) ,不是在c/c++中,调用re函数时,还有可能匹配re(String x,String y)吗,,,(因为只有一个参数所以只给X,Y的值为默认值),不是这样的吗,还是我记错了,????

解决方案 »

  1.   

    java里面没有默认参数,
    c++里有默认参数
      

  2.   

    Java中通过方法名和参数列表共同确定一个方法的,也就是方法名相同不足以确定一个方法的
      

  3.   

    你那个是方法重载,在JAVA中重载是指在同一个方法名被用来定义多个方法。而方法的参数表必须不同,包括参数的类型或个数,以此区分不同方法体;方法的返回类型、修饰符可以相同,也可不同。
    你那样调用,调用的只是re(String x)这个方法体~并不会调用到re(String x,String y)这个方法体~
      

  4.   

    #include <iostream>
    using namespace std;class Test
    {
        public:
            void print(int i){
                cout << "int i is " << i << endl;
            }    
            void print(int i, int j = 0){
                cout << "int i is " << i <<  ", int j is " << j << endl;
            }
            void print(double d){
                cout << "double d is " << d << endl;
            }
    };int main(void)
    {
        Test test;
        test.print(3);  //3的时候编译过不了,3.0的话可以过去
        system("pause");
        return 0;