- 方法重载
这个在我自己的理解就是 同一个方法 因为你提供的参数不同 这个方法运行的效果是不一样的.虽然他的方法名称是一样的.说起来有些拗口 我们依旧走进荣耀峡谷来看一下这个问题.
你选好了英雄 选好了铭文 进入了游戏
非常开心得走到了中路 看到地方英雄非常嚣张的站在了中路
你很生气的上去锤了他一下.
image.png
你这个锤
的操作 我们可以定义为一个方法
叫做attack
public void attack(Hero hero){
System.out.println("你锤了一下对面的"+hero.getName());
}
然后这个英雄被你锤回家了
你站在塔下十分的无聊 你对着地板 锤了一下地板
你这个锤
依然可以叫做attack
这个方法
只是刚才你锤的对象是不同的
你是不会对地板造成伤害的
这时候这个方法可以写成
public void attack(){
System.out.println("你很无聊 自己打了一下地板 地板没有理你");
}
然后你发现 对面的小乔和大乔一起来跟你对线
你就很生气
锤了他们俩
而你这个时候的锤 依旧是attack
public void attack(Hero hero1,Hero hero){
System.out.println(hero1.getName() + "和" + hero.getName()+"都被你锤了");
}
但是效果和面对的英雄都是不同的 而你这个不同的英雄
被称作 参数
也就是说 你的参数不同 虽然你的方法名字相同 但是也是可以运行
java会根据你的不同参数进入到不同的方法中
public static void main(String[] args) {
Hero A = new Hero();
A.setName("大乔");
Hero B = new Hero();
B.setName("小乔");
test test = new test();
test.attack();
System.out.println("=================================");
test.attack(A);
System.out.println("=================================");
test.attack(A,B);
}
效果如下
这就是方法的重载