参考:
https://www.liaoxuefeng.com/wiki/1252599548343744/1260454256258656
方法重载定义
方法名相同,但各自的参数不同
注意:方法重载的返回值类型通常都是相同的。
方法重载的目的是,功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单。
举个例子,String类提供了多个重载方法indexOf(),可以查找子串:
int indexOf(int ch):根据字符的Unicode码查找;
int indexOf(String str):根据字符串查找;
int indexOf(int ch, int fromIndex):根据字符查找,但指定起始位置;
int indexOf(String str, int fromIndex)根据字符串查找,但指定起始位置。
public class Main {
public static void main(String[] args) {
String s = "Test string";
int n1 = s.indexOf('t'); //3
int n2 = s.indexOf("st"); //2
int n3 = s.indexOf("st", 4); //5
System.out.println(n1);
System.out.println(n2);
System.out.println(n3);
}
}
public class Main {
public static void main(String[] args) {
Person ming = new Person();
Person hong = new Person();
ming.setName("Xiao Ming");
// TODO: 给Person增加重载方法setName(String, String):
hong.setName("Xiao", "Hong");
System.out.println(ming.getName());
System.out.println(hong.getName());
}
}
class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setName(String name1, String name2) {
this.name = name1+" "+name2;
}
}
问题:为什么不用再定义name1、name2?