这篇文章主要介绍了JAVA中方法重载概念——简单易懂,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
1、什么方法重载?
方法的重载指的是方法名一样,但是参数类型不一样
1.1、attack方法重载
有一种英雄,叫做物理攻击英雄 ADHero,为ADHero 提供三种方法。
public void attack() public void attack(Hero h2) public void attack(Hero h2, Hero h3)
方法名是一样的,但是参数类型不一样
在调用方法attack的时候,会根据传递的参数类型以及数量,自动调用对应的方法
public class ADHero extends Hero { public void attack() { System.out.println(name + " 进行了一次攻击 ,但是不确定打中谁了"); } public void attack(Hero h2) { System.out.println(name + "对" + h2.name + "进行了一次攻击 "); } public void attack(Hero h2, Hero h3) { System.out.println(name + "同时对" + h2.name + "和" + h3.name + "进行了攻击 "); } public static void main(String[] args) { ADHero bh = new ADHero(); bh.name = "赏金猎人"; Hero h2 = new Hero(); h2.name = "盖伦"; Hero h3 = new Hero(); h3.name = "提莫"; bh.attack(h2); bh.attack(h2, h3); } }
1.2、可变数量的参数
如果要攻击更多的英雄,就需要设计更多的方法,这样类会显得很累赘,像这样:
public void attack(Hero h2) public void attack(Hero h2,Hero h3) public void attack(Hero h2,Hero h3,Hero 3)
这时,可以采用可变数量的参数
只需要设计一个方法
public void attack(Hero ...heros)
即可代表上述所有的方法了
在方法里,使用操作数组的方式处理参数heros即可
public class ADHero 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) { ADHero bh = new ADHero(); bh.name = "赏金猎人"; Hero h2 = new Hero(); h2.name = "盖伦"; Hero h3 = new Hero(); h3.name = "提莫"; bh.attack(h2); bh.attack(h2, h3); } }
练习: 治疗
(设计一个类Support (辅助英雄)继承Hero,提供一个heal(治疗)方法
对Support的heal方法进行重载
heal()
heal(Hero h) //为指定的英雄加血
heal(Hero h, int hp) //为指定的英雄加了hp的血)
答案
public class Support extends Hero { public void heal() { System.out.println("对自己进行治疗"); } public void heal(Hero hero) { System.out.println("给英雄 " + hero + " 加血"); } public void heal(Hero hero, int hp) { System.out.println("给英雄 " + hero + " 加了 " + hp + "点血"); } }
感谢你能够认真阅读完这篇文章,希望小编分享JAVA中方法重载概念——简单易懂内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。