这个是我最开始混淆的问题,我的结论居然笑掉了大牙。说明我从本质上没有理解两者之间的概念。
现在重新的缕一下。
重写:方法名必须相同,构造函数(参数)必须相同。(覆盖)
重载:方法名必须相同,构造函数(参数)必须不同。
这是两者的本质含义,后来一个朋友给我举了一个例子,很贴切,也能更好的理解。
转自诺的例子:
你爸爸有一栋房子,你继承了你父亲的房子,你父亲拥有房子的时候,规定,卫生间只能进男人,但是当你继承的时候,感觉这个制度不适合你用,于是就改为,卫生间任何人都可以进入,别的规则则保留。这就是重写。因为房子还是房子,卫生间还是卫生间,只是改了里面规则,就如改了方法体一样,也叫作覆盖。
保留原来可以用的,改了不适合自己的。
重写是父子类之间的,也就是说两个类之间,而重载,是在一个类中,比如:构造方法,无参构造和有参构造,难道这个有参构造把参数去掉就是重写无参构造吗?答案是:那就报错了