即参数列表不同,参数个数不同,参数类型不同方能构成方法重载!

与修饰符类型、返回值类型、形参的命名没有关系!

比如:

public void getSum(int i,int j){

}

与其不构成方法重载的方法有:

public int getSum(int i,int j){
   return 0;
}

private void getSum(int i,int j){

}

public void getSum(int a,int b){

}

以上三个方法都不构成方法重载!

 

在现在的JDK中,新增了几个初始化方法:

    public void show(int i){

    }

    public void show(String s){

    }

    public void show(String...str){

    }

//    public void show(String[] str){
//
//    }

前三种构成了方法重载,第二种是输入一个String类型的字符串

而第三种是可以输入很多个String类型的字符串

但是如果有了第三种,那么第四种方法就不能存在,因为第三和第四种是等价的

在以前的JDK中,如果想输入多个字符串,那么就只能用第四种方法,即开辟一个数组来储存

在新版本的JDK中,可以直接利用第三种方法进行多个字符串的输入

而这两种是等价的!

 

还有一点要注意

当想输入多个String类型的字符串和其他类型的变量时,就必须要将:String...str

放在最末尾

比如:

//    public void show(String...str,int i){
//        
//    }
    
    public void show(int i,String...str){
        
    }

必须是这样写的,第一种写法会报错!

因此按照这个说法,这个可变个数的形参就只能在方法中声明一个!

因为声明多个必定就会导致有的在前面,所以只能声明一个可变个数的形参。

 

 posted on 2020-10-28 20:54  又在化学楼迷路了  阅读(407)  评论(0)    收藏  举报