首先来看下方法重载的定义:对于同一个类,如果这个类里面有两个或两个及以上重名的方法,但是方法的参数个数,类型或者顺序,至少有一个不一样,这个时候就构成了方法的重载。
从定义来理解,有一下几个注意点:
- 一.方法名一定要相同。
- 二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
1.如果参数个数不同,就不管它的参数类型了!
2.如果参数个数相同,那么参数的类型必须不同。 - 三.方法的返回类型、修饰符可以相同,也可不同。
下面看个小例子,有助于理解方法的重载:
For example:
public class OverLoadExample {
/**
* add()方法,没有任何参数
* @return
*/
public int add()
{
return 1;
}
/**
* add()方法,含有一个整型参数
* @return
*/
public int add(int i)
{
return i;
}
/**
* add()方法,含有一个字符串参数
* @param str
* @return
*/
public String add(String str)
{
return str;
}
/**
* add()方法,含有两个整型参数
* @param a
* @param b
* @return
*/
public int add(int a,int b)
{
return a+b;
}
/**
* add()方法,含有两个字符串参数
* @param str1
* @param str2
* @return
*/
public String add(String str1,String str2)
{
return str1+" love "+str2;
}
public static void main (String [] args)
{
OverLoadExample exam= new OverLoadExample();
System.out.println(exam.add());
System.out.println(exam.add(1));
System.out.println(exam.add("Grady"));
System.out.println(exam.add(1,2));
System.out.println(exam.add("gyl", "zd"));
}
}
执行代码结果
image.png
虽然方法名都是add,但参数的数量不同,或者参数的类型不同,分别执行了同一方法名的不同方法体,这就是重载的好处。
网友评论