美文网首页
Java重载

Java重载

作者: 风雪_夜归人 | 来源:发表于2020-03-08 17:15 被阅读0次

    重载(Overlaod):表示两个或多个方法名字相同,但方法参数不同。

    代码:

    • 普通方法重载
    public class OverLoadTest {
        public  int add(int a,int b){
            return  a + b;
        }
    
        public  int add(int a,int b,int c){
            return a + b + c;
        }
    
        public static void main(String[] args) {
            OverLoadTest overLoadTest = new OverLoadTest();
            int value = overLoadTest.add(3,5);
            int value1 = overLoadTest.add(3,5,8);
            System.out.println("两个参数的add方法的值:" + value);
            System.out.println("三个参数的add方法的值:" + value1);
        }
    }
    ----------------------------------------------------------------------------------------、
    结果:
    两个参数的add方法的值:8
    三个参数的add方法的值:16
    
    方法中也可以嵌套重载的方法:
    public class OverLoadTest {
        public  int add(int a,int b){
            return  a + b;
        }
    
        public  int add(int a,int b,int c){
            System.out.println("在三参数方法中调用重载的两参数方法的值:" + add(a,b));
            return a + b + c;
        }
    
        public static void main(String[] args) {
            OverLoadTest overLoadTest = new OverLoadTest();
            int value = overLoadTest.add(3,5);
            System.out.println("两个参数的add方法的值:" + value);
            int value1 = overLoadTest.add(3,5,8);
            System.out.println("三个参数的add方法的值:" + value1);
        }
    }
    ----------------------------------------------------------------------------------------
    结果:
    两个参数的add方法的值:8
    在三参数方法中调用重载的两参数方法的值:8
    三个参数的add方法的值:16
    
    • 构造方法重载
    public class ConstructorOverload {
        public ConstructorOverload(){
            System.out.println("这是无参构造方法");
        }
    
        public ConstructorOverload(int a){
            System.out.println("这是有1个参数的构造方法,参数值为:"+ a);
    
        }
    
        public static void main(String[] args) {
            ConstructorOverload constructorOverload = new ConstructorOverload();
            ConstructorOverload constructorOverload1 = new ConstructorOverload(4);
            
        }
    }
    ----------------------------------------------------------------------------------------
    结果:
    这是无参构造方法
    这是有1个参数的构造方法,参数值为:4
    
    构造 方法中也可以嵌套重载的方法:
    public class ConstructorOverload {
        public ConstructorOverload(){
            this(1);
            System.out.println("这是无参构造方法");
        }
    
        public ConstructorOverload(int a){
            System.out.println("这是有1个参数的构造方法,参数值为:"+ a);
    
        }
    
        public static void main(String[] args) {
            ConstructorOverload constructorOverload = new ConstructorOverload();
            ConstructorOverload constructorOverload1 = new ConstructorOverload(4);
    
        }
    }
    ----------------------------------------------------------------------------------------
    结果:
    这是有1个参数的构造方法,参数值为:1
    这是无参构造方法
    这是有1个参数的构造方法,参数值为:4
    
    注意点:
    this必须为构造方法第一句,不然就会报错如下图
    Error:(7, 13) java: 对this的调用必须是构造器中的第一个语句
    

    相关文章

      网友评论

          本文标题:Java重载

          本文链接:https://www.haomeiwen.com/subject/ljzddhtx.html