1. 简介
方法的重载指方法的属性+类型+方法名称相同,参数不同的情况。
2. 重载类型
1.方法的参数个数不同
2.方法的参数位置不同
3.方法的参数类型不同
4.构造方法的重载:可以使用this(参数名称)对其他构造方法进行调用
3. 注意事项
1. 不能使用不同的参数名称进行方法的重载,例如max(int a, int b)与max(int x, int y)不是方法的重载。
2. 不能使用不同的返回值进行方法的重载,例如int max(int a, int b)与double max(int a, int b)不是方法的重载。
4. 示例说明
public class chongzai { private int m,n; public chongzai() { } public chongzai(int m) { this.m = m; } public chongzai(int m, int n) { this(m); //使用this关键字对其他构造方法进行调用 this.n=n; } public void sayhello(){ System.out.println("Hello"); } //该方法与第一个方法参数个数不同。参数个数相同,位置不同也算重载 public void sayhello(String name){ System.out.println("Hello ,"+name); } //该方法与第二个方法的参数类型不同 public void sayhello(char name){ System.out.println("Hello ,"+name); } //注意:不能使用参数名来区分方法 //注意:不能使用方法的返回值来区分重载的方法,重载方法的返回值类型可以不同 public int max(int x,int y){ return x>y?x:y; } public int max(int x,short y){ System.out.println("ok"); return x>y?x:y; } public double max(int x,byte y){ return 0; } public double max(byte y,int x){ return 0; } public static void main(String args[]){ chongzai test=new chongzai(); test.sayhello(); test.sayhello("JFL"); test.sayhello('A'); System.out.println(test.max(1,2)); test.max(1,(short)2); } }