在Java的学习中,我们用到重载与重写的地方非常多,它们姓名相似,但是作用却并不相同,接下来我会介绍一下我个人对重写与重载的区分。
在这里,我先简单介绍一下Java里面我们常用的方法。一个方法它是由方法名(方法的名字),参数列表(在方法中传入的参数)和方法体(在这个方法中所运行的代码)构造而成。这是String类中的一个方法,charAt就是它的方法名,int index就是他的参数列表。
方法的重载发生在同一个类中,方法名相同,但是参数列表不同,方法体一般状态下也不同,重载方法可以使传入不同的参数类型和个数来实现不同的功能(一般是同种功能的不同情况),编译器通过方法的签名来调用绑定的方法。
方法的重写往往发生在超类和派生类(也称父子类)当中,它们的方法名和参数列表相同,但是往往方法体不同,我们常使用在向上造型当中。但是在方法的重写中,我们需要注意的是重写的方法(也就是派生类的方法)的返回值类型必须小于超类的方法的返回值类型,抛出的异常要小于超类抛出的异常,但是派生类方法的访问权限需要大于超类方法的访问权限