重载是发生在同一个类中的,定义的方法名相同,但方法的参数不同,重载时根据参数选择调用的方法,如果返回类型不同则就不能构成重载。
重写是在继承时发生,在子类中重新定义父类中的方法,子类的方法和父类的方法是一样的,其方法名、参数和返回值必须完全一致,重写时访问父类子类皆调用子类的方法。
重写(override)一般用于接口的实现和继承类的方法改写,但要注意:
1覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2覆盖的方法的返回值必须要和被覆盖的方法的返回值一致;
3覆盖的方法抛出的异常必须和被覆盖的方法抛出的异常一致或者是其子类;
4被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。