其实在编写代码的过程中,或者在基础的教学中,或多或少都接触过重写,和重载。但是当我们把这两个词放在这一起,让我们说说他们的区别,难免会弄混。这里整理下重载和重写的区别。
重载
- 参数的类型,顺序,个数至少有一个不相同
- 不能重载只有返回值不同的方法名
- 存在于父子类,或同类中。
重写
- 方法名,参数,返回值相同
- 子类不能缩小父类的权限
- 子类方法不能抛出比父类更多的异常
- 存在于父子类中
- 方法被定义为final,不能被重写
区别 | 重写 | 重载 |
---|---|---|
英文 | override | overload |
权限 | 子类不能缩小父类的访问权限 | 没有限制 |
区域 | 父子类 | 父子类,同类 |
定义 | 方法名,参数,返回值相同 | 方法名必须相同,参数类型,个数,顺序至少一个不同 |