首页 > 解决方案 > 匹配函数名称但参数不同

问题描述

在第 51 页学习 Java 中的“破解编码面试”时,我遇到了:

void permutation(String str){
   permutation(str,"");
}
void permutation(String str, String prefix){
  if(str.length()==0){
    System.out.println(prefix);
  } else{
    for(int i=0;i<str.length();i++){
        String rem=str.substring(0,i)+str.substring(i+1);
         permutation(rem,prefix+str.charAt(i));
    }
  }
}

我知道第一个置换函数接受一个字符串并调用完成所有工作的第二个置换函数。然而,第二个置换不是对第一个置换函数的重新声明吗?Java 将如何识别和使用第一个置换函数而不覆盖它?

标签: javafunctionsyntaxpermutation

解决方案


java将如何识别和使用第一个排列函数?

当您调用该方法时,Java 会看到您尝试传递给它的内容。根据您传递的参数,它将决定您尝试使用的方法的“版本”。

就像其他人所说 - 这是方法重载


推荐阅读