一,重写(override),也翻译成覆盖。
在java中含义:同一个东西只有一种含义,只是原先的含义完全被后来的含义取代。
重写(覆盖)的规则:
- 1、重写方法与被重写方法参数列表类型必须完全一致。
- 2、重写方法的访问修饰符一定要大于或等于被重写方法的访问修饰符(public>protected>default>private)。
- 3、重写的方法的返回值和被重写的方法的返回值必须保持一致;
- 4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
- 5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
- 6、静态方法不能被重写为非静态的方法(会编译出错)。
用一句话总结重写规则:重写方法与被重写方法访问控制可能不一样,方法内容不一样,其余的均与被重写方法一样。
注意:overload是重载,一般是用于在一个类内实现若干重载的方法,这些方法的名称相同而参数形式不同。
二,重载(overload),也翻译成过载。
在java中含义:同一样东西在不同的地方具有多种含义。
重载(过载)的规则:
- 1、方法名相同,参数类型不同或参数列表形式不同;
- 2、不能通过访问权限、返回类型、抛出的异常进行重载;
- 3、方法的异常类型和数目不会对重载造成影响;