语音版:
我定义了一个类如下:
public class FirstJava {
private int value;
private int count;
public void setValue(int value) {
this.value = value;
}
public int setValue(int value) {
this.value = value;
return value;
}
public void setValue(int value, int count) {
this.value = value;
this.count = count;
}
}
上面的代码定义了三个setValue方法,第一个与第二个区别是方法返回值不同,第三个是增加了一个参数。上面的代码大家检查一下能不能编译过,答案先不说,先来说一下Java中方法重载是怎么回事。方法重载的规则是方法名字相同,参数列表不同。
参数列表不同分为下面三种情况:
清楚了重载的规则大家应该不难判断出来上面的代码是有问题的,因为规则中没有通过方法的返回值来区分方法重载的,所以第二个setValue不能那样写。