重写与重载

重写(override) 是重写了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类的中的方法。
重写的规则:
1 重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载
2 重写方法的访问修饰符一定要大于被重写方法的访问修饰符
3 重写的方法的返回值必须和被重写的方法的返回一致
4 重写的方法所抛出的异常和被重写方法的抛出异常一致,或者是其子类

重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:

父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。


5 被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写
6 静态方法不能被重写为非静态的方法


重载(overload)一般是用于在一个类内实现若干宠重载的方法,这些方法的名称相同而参数形式不同
重载的规则:
1 在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以使不同的参数类型,不同
的参数个数,不同的参数顺序
2 不能通过访问权限、返回类型、抛出的异常进行重载
3 方法的异常类型和数目不会对重载造成影响

 总的来说:

  重写:(重写方法和被重写方法)

    1:返回值相同

    2:参数相同

    3:异常相同或者是其子类

    4;权限要大于被重写方法

  重载:

    1:名字相同

    2:参数不同(不同的参数类型,参数个数,参数顺序)

    

原文地址:https://www.cnblogs.com/fengan/p/5671121.html