在 Java 中,Override(方法重写 / 覆盖) 指的是:子类重新定义父类中已经存在的方法,以满足子类自己的需求。
当:
这就叫 方法重写(Override)。
✅ 方法签名相同指的是:
class Parent {
public void show() {}
}
class Child extends Parent {
// ❌ 错误:不能降低访问权限
// protected void show() {}
// ✅ 正确
public void show() {}
}
class Parent {
void test() throws IOException {}
}
class Child extends Parent {
// ❌ 错误:抛出了更宽泛的异常
// void test() throws Exception {}
// ✅ 正确
void test() {}
}
class Parent {
static void show() {}
}
class Child extends Parent {
static void show() {} // 这是方法隐藏,不是重写
}
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() {}
作用:
✅ 强烈推荐使用
| 对比项 | Override(重写) | Overload(重载) |
|---|---|---|
| 发生位置 | 父子类之间 | 同一个类中 |
| 方法名 | 相同 | 相同 |
| 参数列表 | 必须相同 | 必须不同 |
| 返回值 | 相同或协变 | 可以不同 |
| 多态 | ✅ 支持 | ❌ 不支持 |
Override 是子类对父类方法的“重新实现”,是多态和面向对象设计的核心机制之一。
如果你愿意,我也可以讲:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。