讲解Java中的@Override

@Override 是 Java 中非常常用的一个注解(Annotation),它的主要作用是标识子类方法覆盖(重写)了父类的方法 。虽然即使不加 @Override,Java 依然允许你去覆盖父类的方法,但使用它有非常重要的好处:


1️⃣ 基本作用

  • 当你在方法上加上 @Override,编译器会强制检查你是否确实在重写父类或接口中的方法;
  • 如果方法签名不匹配(比如方法名拼错、参数不一致、返回类型不兼容),编译器会直接报错
  • 这可以有效避免因为拼写错误或方法签名不一致而导致程序潜在的 bug。

2️⃣ 使用场景

  • 重写父类中的方法:

    java 复制代码
    class Animal {
        void makeSound() {
            System.out.println("Some sound");
        }
    }
    
    class Dog extends Animal {
        @Override
        void makeSound() {
            System.out.println("Woof!");
        }
    }

    这里 DogmakeSound 方法用 @Override 表示它覆盖了 Animal 中的同名方法。

  • 实现接口方法:

    java 复制代码
    interface Runner {
        void run();
    }
    
    class Person implements Runner {
        @Override
        public void run() {
            System.out.println("Person is running");
        }
    }

3️⃣ 常见错误示例

  • 方法签名和父类或接口中的方法不一致时会导致编译错误:

    java 复制代码
    class Animal {
        void makeSound() {}
    }
    
    class Dog extends Animal {
        @Override
        void makesound() { // 方法名大小写错误:makeSound → makesound
            System.out.println("Woof!");
        }
    }

    编译器会提示:

    sql 复制代码
    Error: method does not override or implement a method from a supertype

4️⃣ 为什么强烈推荐使用 @Override

✅ 避免拼写错误导致的方法没有真正重写;

✅ 让代码可读性更高,维护者一眼就能看出这是重写父类/接口的方法;

✅ 在重构代码或修改父类/接口方法名时能及时发现问题。


5️⃣ 适用范围

  • 类继承 中,用于标识子类重写父类方法;
  • 接口实现 中,用于标识类实现接口方法;
  • 从 Java 6 开始,还可以用于重写接口的 默认方法(Java 8 引入 default 方法后)。

✅ 小总结

@Override 并不是必需的,但加上它是一种良好的编码习惯,能帮助你及早发现错误,并让代码更加规范和清晰。

相关推荐
midsummer_woo24 分钟前
基于spring boot的纺织品企业财务管理系统(源码+论文)
java·spring boot·后端
zc-code39 分钟前
Spring Boot + @RefreshScope:动态刷新配置的终极指南
java·spring boot·后端
何中应44 分钟前
EasyExcel使用(二:写出)
java·后端·maven·excel
苏三说技术2 小时前
千万级的大表如何新增字段?
后端
外滩运维专家2 小时前
后端开发必备:生产环境异常自动电话通知方案
后端·程序员
绝无仅有2 小时前
Redis 服务挂掉排查与解决
后端·面试·github
FSHOW2 小时前
重新造轮子?HestJS:让 Hono 拥有 NestJS 的优雅
前端·javascript·后端
用户6120414922133 小时前
C语言做的井字棋小游戏
c语言·后端·游戏
发仔1233 小时前
MyBatis编写Neo4j查询时$与#的注意事项
后端
net9363 小时前
基于Java+Springboot+Vue开发的在线蛋糕商城管理系统源码+运行
后端