参考:http://blog.csdn.net/zhu_apollo/article/details/1852542
重写与重载的主要区别:(方法也叫做函数)
(1)存在的位置;(2)方法名、参数列表和返回值;(3)修饰符、异常。
重载(overload)的特点:
1:存在于同类之中,也存在于子类与父类之中。
2:方法同名,参数列表不一样。函数的返回值类型不做要求。
3:方法的异常类型和异常的数目不会对重载造成影响。
重写(override)的特点:
1:存在于子类于父类之间。
2:方法名、参数列表、返回值相同。重写方法的方法名,参数列表(参数个数,参数顺序,参数类型),返回值都要与被重写函数的严格相同。
3:重写函数的访问控制符一定要大于被重写函数的访问修饰符(public>protected>friendly>private)。
4:重写方法一定不能抛出新的检查异常,或者不能比被重写的方法声明更加宽泛的检查型异常。例如:
父类的一个方法(函数)声明了一个检查异常IOException。在重写这个方法时,不能再抛出Exception,只能抛出IOException的子类异常,也可以抛出非检查异常或者不抛出异常。
5:方法定义为final时不能被重写。