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