在 Java 中,Override(方法重写 / 覆盖) 是指:在子类中定义一个与父类中同名、同参数列表、同返回类型(或协变返回类型)的方法,用来替换或扩展父类方法的实现。
当子类继承父类后:
重写后:
class Animal {
void sound() {
System.out.println("动物叫");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("汪汪汪");
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Dog();
a.sound(); // 输出:汪汪汪
}
}
✅ 这里 Dog 重写了 Animal 的 sound() 方法
✅ 运行时根据实际对象类型调用方法(多态)
@Override
void sound() { ... }
作用:
Object m() { ... }
String m() { ... } // 合法(协变)
| 父类 | 子类 |
|---|---|
| public | public ✅ |
| protected | protected / public ✅ |
| default | default / protected / public ✅ |
| private | ❌ 不能重写(不算重写) |
private 方法static 方法(那是隐藏,不是重写)final 方法| 对比 | Override(重写) | Overload(重载) |
|---|---|---|
| 位置 | 子类与父类 | 同一类中 |
| 方法名 | 相同 | 相同 |
| 参数 | 必须相同 | 必须不同 |
| 返回类型 | 相同或协变 | 可不同 |
| 多态 | ✅ 是 | ❌ 否 |
如果你愿意,我也可以:
你想从哪方面深入?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。