深入解析 Java 重载与重写(方法重写、方法重载)
一、前言
在 Java 面向对象编程中,重载(Overload)和重写(Override)是两个极易混淆但极其重要的语法特性。二者都是实现多态的手段:重载对应编译时多态,重写对应运行时多态。熟练区分、掌握底层规则,是写出规范代码、应对考试和面试的必备基础。
二、方法重载(Overload)
1. 定义
在同一个类中,多个方法方法名相同、参数列表不同,称为方法重载。
2. 构成重载的条件(重点)
1. 方法名必须完全一致
2. 参数列表必须不同(满足其一即可)
- 参数个数不同
- 参数类型不同
- 参数顺序不同
3. 返回值、访问修饰符、异常不参与重载区分
3. 代码示例
public class OverLoadDemo {
// 两个参数
public int add(int a, int b) {
return a + b;
}
// 三个参数(参数个数不同)
public int add(int a, int b, int c) {
return a + b + c;
}
// 参数类型不同
public double add(double a, double b) {
return a + b;
}
}
4. 重载特点
- 发生在同一个类
- 编译阶段绑定,静态多态
- 提高方法灵活性,同一个功能适配多种参数
三、方法重写(Override)
1. 定义
子类对父类继承的方法进行重新实现,方法名、参数列表、返回值完全一致,用于修改父类原有逻辑。
2. 重写成立条件
1. 发生在父子类继承关系中
2. 方法名、参数列表、返回值完全一致
3. 子类访问权限 ≥ 父类权限
4. 子类抛出异常 ≤ 父类异常
5. 私有方法、静态方法、final 方法不能重写
3. 代码示例
class Animal {
public void shout() {
System.out.println("动物发出叫声");
}
}
class Dog extends Animal {
// 重写父类方法
@Override
public void shout() {
System.out.println("小狗汪汪叫");
}
}
四、重载与重写核心区别总结
1. 位置:重载同类;重写跨父子类
2. 机制:重载编译多态;重写运行多态
3. 规则:重载改参数;重写不改签名改逻辑
4. 关键字:重写可加@Override,重载不需要
五、总结
重载让一个方法名适配多种参数,提升代码简洁度;重写让子类个性化改造父类行为,是多态的核心实现。两者配合,是 Java 面向对象设计灵活性的关键。
更多推荐

所有评论(0)