1. 简介
题主这两天笔试,经常遇到这个问题,一直以来也没有好好的整理过,今天来个一次性的整理
2. 分析
重载:Override
同一个类,参数列表不同,不能只通过返回值看待是否为重载
- 发生在同一个类
- 相同的方法名
- 参数列表不同
- 不看返回值,如果出现了只有返回值不同的“重载”,是错的。
正确示范
错误示范
重写:Overload
准确的来说,就是只有方法体进行改变,其他不变,且子方法的修饰符要小于父类的修饰符。
- 发生在子类与父类中
- 相同的方法名
- 相同的参数列表
- 返回值相同 或者 子类方法的返回值是父类方法返回值类型的子类
- 访问修饰符相同 或者 子类方法的修饰符范围 大于 父类
- 抛出的异常相同 或者 子类方法抛出的异常 小于父类
错误示范:
访问修饰符的大小
public > protected > default > private