Java中关于重写和重载我总是弄混,在这里记录一下两者区别
1.重载:发生在一个类中,方法重载在于方法名相同,参数列表的长度,顺序,类型可以不同,与返回值无关
2.重写:发生在继承中,子类重写父类的方法
(1)参数列表必须完全与重写方法相同
(2)返回类型必须完全与被重写方法的返回类型相同
(3)访问权限不能比父类重写的方法低
(4)声明为static和private的方法不能被重写,但是能够被再次声明
3.重载和重写的区别:
(1)发生的位置
重载:一个类中
重写:子父类中
(2)参数列表限制
重载:必须不同
重写:必须相同
(3)返回值类型
重载:与返回值无关
重写:返回值类型必须一致
(4)访问权限
重载:与访问权限无关
重写:子类重写的方法权限要不小于父类
(5)异常处理
重载:与异常无关
重写:异常范围可以更小,但是不能抛出新的异常