简单来说,方法重载就是两个方法,有着相同的名字,但是不同的参数列表,重载与多态没有关系。
重载的好处:同一个方法有多钟带有不同参数的版本,能够让你很方便的调用。
重载版的方法只是刚好有相同的名字的不同方法,它与继承或者多态无关。重载的方法与覆盖的方法不一样。
重点:
1.返回类型可以不同 :你可以任意地改变重载方法的返回类型,只要所有的覆盖使用不同的参数类型即可。
2.不能只改变返回类型 : 因为你这样操作的话,这不是一个有效的重载,编译器会假定你想覆盖这个方法。并且除非返回的类型是父类返回类型的子类,不然将不合法。要想重载一个方法,你必须改变参数列表,返回类型则是可以任意定义。
3.你可以用一个more restrictive的方法来重载另一个方法,这是没有关系的,since the new method isn’t obligated to fulfifill the contract of the overloaded method.
下面再举一些方法重载的合法例子:
public class Overloads {
String uniqueID;
public int addNums(int a, int b) {
return a + b;
}
public double addNums(double a, double b) {
return a + b;
}
public void setUniqueID(String theID) {
// lots of validation code, and then:
uniqueID = theID;
}
public void setUniqueID(int ssNumber) {
String numString = “” + ssNumber;
setUniqueID(numString);
}}