文章目录. 个人博客 http://blog.deschen.cn/
Java重写与重载区分
一、什么是重写和重载二、要点说明
一、什么是重写和重载
重写:子类继承父类方法,不改变原有的参数类型、参数数量及参数排列顺序和方法响应类型,覆盖父类的方法
重载:同一个类中,方法名相同,根据参数类型、参数数量及参数排序位置的不同,做出不同的处理
区别
| 区分点 | 重写 | 重载 |
|---|---|---|
| 发生阶段 | 运行期 | 编译期 |
| 发生范围 | 子类 | 同一个类 |
| 参数列表 | 跟原有的一样 | 可修改原来的参数类型、个数及排列顺序 |
| 返回类型 | 继承或等于父类(引用类型) 必须相等(基本类型和void) | 无限制 |
| 异常范围 | 继承或等于父类 | 无限制 |
| 访问修饰符范围 | 大于或等于父类 | 无限制 |
被private / static / final 修饰的方法,子类不能重写该方法,理由如下:
private:子类覆盖父类的允许访问的方法,而private只能本类操作static / final:重写的阶段是运行期,而被static / final 修饰的方法在编译期就已经绑定了 Java允许重载任何方法,而不只是构遗方法。因此,要完整地描述一个方法,需要指出方法名以及参数类型。这叫做方法的签名( signature)。返回类型不是方法签名的一部分。也就是说,不能有两个名字相同、参数类型也相同却返回不同类型值的方法



