【无标题】@Override

📅 2026/7/3 9:05:52 👁️ 阅读次数 📝 编程学习
【无标题】@Override

@Override 是 Java 中的一个注解(Annotation),它的作用是告诉编译器:被标注的方法是重写父类(或接口)中的方法。
它本身不是方法,而是一个标记,写在方法声明的上方,例如
@Override
public String toString() {
return “自定义内容”;
}
它到底有什么用?

  1. 编译期检查(最重要!)
    如果你标了 @Override,但方法名写错了,或者参数列表与父类方法不同,编译器会立刻报错。
    比如你不小心写成了:

@Override
public String tostring() { … }
编译器会提示“方法没有覆盖其父类的方法”,帮你避免因拼写失误导致的逻辑错误。
如果没有 @Override,上面的代码会变成一个全新的普通方法,编译器不会警告你,程序运行时可能调不到预期的方法,排查起来很困难。
2. 提高可读性
别人看到 @Override 就知道这个方法不是凭空出现的,而是从父类/接口继承下来的,并且在这里被修改了。这有助于快速理解代码结构。
3. 它是可选的
不加 @Override,只要方法签名(名字、参数、返回值)与父类完全一致,仍然属于重写,功能不受影响。但建议永远加上,因为它能防错。
常见重写场景
• 重写 Object 类的 toString()、equals()、hashCode() 方法
• 重写接口中的抽象方法(如 Runnable 的 run())
• 重写父类的具体方法以改变行为