本文记录一下java中方法的重写和重载的区别。
1)JAVA中方法的重写也就是我们说的覆盖。Override
一般是在继承的时候,重写父类的方法,实现子类需要的功能。那么重写的时候,要遵循的规则有以下几种:
(1)重写的方法,其方法签名要(包括方法名,参数类型,参数个数)要和原来的方法一模一样。
(2)重写的方法,其访问权限不能低于原来的方法。(public>protected>default>private)
(3)重写的方法,其修饰符访问权限不能是private。这也就是由上一条推出来的。
(4)父类的静态方法不能被重写。
(5)重写的方法,其抛出的受查异常不能大于原来方法的受查异常。例如:
原方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非受查异常。
2)JAVA中的方法重载。OverLoad
方法的重载一般出现在同个类中,创建多个方法名相同,而参数不同的方法,就叫方法的重载。调用的时候,会根据传入的参数不同,自动调用对应的方法。这也是java多态的体现。重载方法的要遵循以下规则:
(1)一定要有不同的参数列表。
(2)可以有不同的返回类型
(3)可以有不同的访问修饰符
(4)可以抛出不同的异常。