方法的重载

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);
    }     
}

原文地址:https://www.cnblogs.com/jfl-xx/p/4670677.html