JAVA之方法的重载

对于方法重载就是方法名相同,但是方法的参数个数和类型不同,和返回值类型以及修饰符没有关系

如果有很多不同个数参数的时候就得有很多方法,这个时候我们可以使用可变数量的参数,以王者荣耀来写段代码看看

class Hero{
     String name;
}

public class ApHero extends Hero {
    public void attack(){
        System.out.println(name+"技能乱放不知道打中谁了");
    }
    public void attack(Hero...heros){
          for (int i=0;i<heros.length;i++){
              System.out.println(name+"对"+heros[i].name+"使用了技能");
          }
    }
    public static void main(String[] args) {
               ApHero apHero=new ApHero();
                  apHero.name="张良";
               Hero h1=new Hero();
               h1.name="陈咬金";
               Hero h2=new Hero();
               h2.name="亚瑟";
               apHero.attack();
               apHero.attack(h1);
               apHero.attack(h1,h2);
    }
}

从main方法里看,我们调用方法的时候参数都不相同,如果每种情况我们都写个方法对应岂不是很累赘,这个时候看一下上面

public void attack(Hero...heros){
          for (int i=0;i<heros.length;i++){
              System.out.println(name+"对"+heros[i].name+"使用了技能");
          }
    }

在方法里,使用操作数组的方式处理参数heros即可

看一下结果:

张良技能乱放不知道打中谁了
张良对陈咬金使用了技能
张良对陈咬金使用了技能
张良对亚瑟使用了技能

猜你喜欢

转载自blog.csdn.net/qingxu1234/article/details/81128330