这今天经常做题时碰到 这两个,重载和重写,每次自己都不大确定,都要去搜索一下,现在自己总结一下,加深一下自己的印象,也方便一下自己以后的学习。
1.方法的重写
方法的重写又可以叫做方法的覆盖,很多时候就是实现接口,对接口中的方法进行重写(
@Override)
,方法重写有以下要求:
1:传入的参数要保持一致;
2:返回值类型要保持一致;
3:重写方法的权限不能小于被重写方法的权限,且private和static不能被重写;
4:不能抛出新的异常。
2.方法的重载
简单来说,重载就是在一个类中,方法名相同,但形参不同的方法。
方法的重载有以下要求:
1:重载的方法名必须相同;
2:重载的方法传入的参数类型必须不同;
3:重载的返回类型可以不同,也可以相同;
4:仅仅返回类型不同,不可以作为方法的重载
3.重载与重写的区别
1:发生的位置
重写:子父类中;
重载:一个类中;
2:异常方面
重写:不能抛出新的异常
重载:与异常无关
3:返回值
重写:返回值类型相同
重载:可以相同可以不相同
4:访问权限
重写:访问权限不能小于父类(重写的方法访问权限不能小于被重写方法的访问权限)
private 和 static 不能被重写
重载:与访问权限无关
5:参数列表
重写:必须相同的
重载:必须不同的