151
社区成员
发帖
与我相关
我的任务
分享一、引言
方法重载和方法重写是Java语法中名字相近、作用完全不同的两大核心考点,也是期末考试选择、判断、代码分析题最爱挖坑的地方。
二、方法重载 Overload 概念
在同一个类中,允许存在多个同名方法,
要求参数列表不同,方法功能相近、参数形式不一样,
调用时根据传入参数自动匹配对应方法执行。
三、重载满足条件
1. 必须在同一个类里面
2. 方法方法名完全相同
3. 参数列表必须不同:个数不同、类型不同、顺序不同
4. 返回值、权限修饰符不参与重载判断
四、重载核心特点
1. 编译期绑定,静态多态
2. 只看方法名和参数,和返回值无关
3. 构造方法也支持重载
4. 方便同一类提供多种参数调用方式,提高代码灵活性
五、方法重写 Override 概
在子类当中,重新定义父类已经存在的成员方法,
保留方法声明,重新改写方法内部业务逻辑,
实现子类个性化功能覆盖。
六、重写满足条件
1. 必须发生在子类和父类继承关系中
2. 方法名、参数列表必须和父类完全一致
3. 返回值兼容,不能随意扩大类型范围
4. 访问权限不能比父类更小,只能放宽或持平
5. 抛出异常范围不能比父类更大
6. 私有方法、静态方法、构造方法不能被重写
七、重写核心特点
1. 运行期动态绑定,属于运行多态
2. 为多态机制提供底层支撑
3. 子类覆盖父类原有逻辑,实现功能定
八、重载与重写终极八大区别
1. 位置:重载同类中;重写父子继承之间
2. 方法名:重载同名参数不同;重写名字参数全部一致
3. 参数列表:重载必须不同;重写必须完全相同
4. 返回值:重载无关;重写要求兼容匹配
5. 权限修饰:重载无限制;重写权限只能放大不能缩小
6. 异常声明:重载无要求;重写异常范围不能扩大
7. 绑定时机:重载编译静态绑定;重写运行动态绑定
8. 作用目的:重载方便多种参数调用;重写覆盖父类实现多态
九、哪些不能重写
1. private 私有方法
2. static 静态方法
3. final 最终方法
4. 构造方法
5. 父类私有成员全部无法重写
十、注解 @Override 作用
手动标注校验是否符合重写规范
写法错误直接编译报错,提前排查语法问题
规范代码,防止粗心写错方法名和参数
十一、新手高频易错汇总
1. 误以为返回值不同就能构成重载
2. 把子类静态方法当成重写理解
3. 重写时擅自缩小访问权限导致编译报错
4. 构造方法混淆重载和重写概念
5. 分不清编译期重载与运行期重写多态区别
十二、全文学习总结
重载实现同类方法多形式调用,重写实现子类对父类方法个性化覆盖,一个静态适配、一个动态多态。把定义条件、区别对比、禁止重写场景全部记牢,轻松搞定期末所有辨析题、代码判断题。
方法重载和方法重写是Java语法中名字相近、作用完全不同的两大核心考点,也是期末考试选择、判断、代码分析题最爱挖坑的地方。