8.10 重载
同一个类里面,允许有相同方法名存在,这就是方法的重载。例如:
public class Student{
public String name;
public String id;
public String clazz;
public void setId(int id){
this.id=id+"";
}
public void setId(String id){
this.id=id;
}
}
这里有两个setId方法。调用的时候是不会弄错的,参数是哪个,就调用哪个函数,例如:
Student student=new Student();
student.setId(8);
Student student2=new Student();
student2.setId("9");
第一个对象student调用setId参数是整数,第二个对象student2调用setId参数是字符串。
那么到底按照什么原则来区分两个方法呢?
1.方法名
2.方法的参数
而重载的机制就是在方法名相同的情况下,用参数的不同来区别两个方法,这样的调用的时候,并不会出错。
特别注意:不能用返回值的类型来区别方法,也就是说两个方法名字一样,参数一样,返回类型不同,那么会判定成语法错误而不是重载。
方法的参数不同通常是指:
1.参数的个数不同
2.参数的顺序类型不同
假如下面的方法都在一个类里面,只写出函数头:
void setId(String id);
void setId(int id);
void setId(String id,int index);
void setId(int k,String id);
这些方法如果都实现了,在同一个类里,都是合法的!重载机制发挥了作用。如果再加入这个方法:String setId(int k),就会报错了,因为这个和第二个区分不出来,返回值不一样是不能区分它们的。
Math的方法里面就有不少是重载的,例如:

abs有四个方法,它们参数都不一样。