许多新手在理解重载与重写的时候想破了脑袋,也没弄明白他们的意思。
我简单打个比方吧。
很多人都玩过lol和王者荣耀吧。那么我们先写一个类,叫做Hero,他有一些基本属性,hp,name,还有一个基本方法play(){System.out.println(“Hero”);}。
然后英雄还有ad英雄和ap英雄。这里我们ad英雄和ap英雄也有Hero的一些基本属性,于是,我们继承他。
class ADHero extends Hero,此时我们可以调用Hero里面的play方法,但是此时是ad英雄,所以我们在ADHero里面写一个方法,覆盖了Hero里面的play方法,就是play(){System.out.println(“ADHero”);}。这个叫做重写,在子类重新写了一个方法去覆盖了父类的这个方法。如果是APHero则重写play(){System.out.println(“APHero”);}
重载就是同名函数完成不同的操作。比如ADHero里面有一个方法叫ADPlay()。 比如完成这件事,输出提莫被打了。 public ADPlay(){System.out.println(“提莫被打了”);},这样就实现了。但是提莫给谁打了呢?我们又设计一个方法,实现,输出:提莫被德玛打了。public ADPlay(String name){System.out.println(“提莫被”+name+"打了");},然后这个name赋值为德玛就行了。
如果要输出:提莫被德玛打了,掉了100血。则是public ADPlay(String name,int hp){System.out.println(“提莫被”+name+"打了,掉了"+hp+“血。”);}。这个就是方法的重载。
大概就是这样子吧,我刚毕业,大神们别喷我。