讲解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 并不是必需的,但加上它是一种良好的编码习惯,能帮助你及早发现错误,并让代码更加规范和清晰。

相关推荐
猿究院-陆昱泽34 分钟前
Redis 五大核心数据结构知识点梳理
redis·后端·中间件
yuriy.wang1 小时前
Spring IOC源码篇五 核心方法obtainFreshBeanFactory.doLoadBeanDefinitions
java·后端·spring
咖啡教室3 小时前
程序员应该掌握的网络命令telnet、ping和curl
运维·后端
你的人类朋友4 小时前
Let‘s Encrypt 免费获取 SSL、TLS 证书的原理
后端
老葱头蒸鸡4 小时前
(14)ASP.NET Core2.2 中的日志记录
后端·asp.net
李昊哲小课4 小时前
Spring Boot 基础教程
java·大数据·spring boot·后端
码事漫谈5 小时前
C++内存越界的幽灵:为什么代码运行正常,free时却崩溃了?
后端
Swift社区5 小时前
Spring Boot 3.x + Security + OpenFeign:如何避免内部服务调用被重复拦截?
java·spring boot·后端
90后的晨仔5 小时前
Mac 上配置多个 Gitee 账号的完整教程
前端·后端
码事漫谈5 小时前
AI智能体平台选型指南:从技术架构到商业落地的全景洞察
后端