重载与重写,没有关系。二个不同东西。
重载是以同名方法同时存在,以不同的参数个数,不同的参数类型加以区分调用。是类多态性的表现。
重写是子类继承父类后,把同名的方法重写,实现不同方法内容。
1,参数列表必须完全与被重写方法相同。
2,返回的类型必须与被重写方法相同。
3,访问修饰符的限制一定要大于被重写方法的。(public>protected>default>private)
4,重写方法不同抛出新的检查异常或更加宽泛的检查异常。例:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
重载规则:
1、必须具有不同的参数列表;
2、可以有不责骂的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常;
区别点 | 重载方法 | 重写方法 |
参数列表 | 必须修改 | 一定不能修改 |
返回类型 | 可以修改 | 一定不能修改 |
异常 | 可以修改 | 可以减少或删除,一定不能抛出新的或更广的异常 |
访问 | 可以修改 | 一定不能做更严格的限制(可以降低限制) |