《阿里巴巴Java开发手册》编程规约->OOP规约 其中有一条,强制要求所有覆写方法添加 @Override 注解。 这是一项非常重要的编码规范。它主要有以下几个核心目的和好处回到顶部 1.编译时检查覆写是否正确Override注解会让编译器检查该方法是否确实成功覆写了父类或接口中的方法。如果方法签名与父类方法不一致例如方法名拼写错误、参数类型或数量不匹配、返回值类型不兼容等编译器会立即报错防止潜在的运行时错误 。经典案例getObject()字母O与get0bject()数字0的问题。肉眼难以分辨但加上Override后如果拼写错误导致并未成功覆写编译器就会提示错误从而避免误以为覆写成功而实际调用了父类方法的情况 。回到顶部 2.增强代码可读性和可维护性当其他开发者阅读代码时Override注解提供了一个清晰的视觉信号表明“这是一个覆写自父类或接口的方法”而不是一个子类自行定义的新方法。这有助于快速理解类的层次结构和设计意图 。回到顶部⚡ 3.应对父类或接口的变更当父类尤其是抽象类或接口的方法签名发生修改时例如方法名更改、参数调整所有加了Override注解的实现类方法会立即编译报错。这迫使开发者必须同步检查并更新实现逻辑确保了代码在重构过程中的一致性和安全性避免了“方法找不到”或行为不一致的运行时异常如NoSuchMethodError。回到顶部⚠️ 4.覆写方法的基本规则在使用Override注解时也需遵循Java语言本身的覆写规则 方法名、参数列表必须完全相同。返回值类型子类方法的返回值类型必须与父类方法相同或是其子类型协变返回类型。访问权限子类方法的访问权限不能比父类方法更严格即不能缩小访问范围。例如父类方法是protected子类覆写时可以是protected或public但不能是private或默认包级权限。异常子类方法抛出的受检异常不能比父类方法抛出的更通用。无法覆写的情况无法覆写被private、static或final修饰的方法。回到顶部 总结为所有覆写方法添加Override注解是一个低成本、高回报的最佳实践。它充分利用编译器的静态检查能力在开发阶段早期就能发现因拼写错误或签名不匹配导致的问题极大提升了代码的健壮性和可维护性是团队协作和代码质量保障中非常重要的一环。回到顶部【附】《阿里巴巴Java开发手册》主要版本时间线《阿里巴巴Java开发手册》是阿里巴巴集团技术团队与社区开发者共同智慧的结晶旨在提升代码质量、协作效率和系统稳定性。它涵盖了编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约等多个维度。(获取最新版本的手册可关注阿里巴巴的官方技术社区或发布渠道如阿里云云效平台、GitHub仓库 alibaba/p3c。许多技术社区也会不定期分享相关资源。)版本号版本名称发布日期主要更新与特点-试读版2016年12月07日首次对外发布试读版本。1.0.0公开版2016年12月首个公开版本。1.1.0正式版2017年02月09日阿里巴巴集团正式对外发布。1.3.0终极版2017年09月25日增加单元测试规约并发布了阿里开源的IDE代码规约检测插件。1.4.0详尽版2018年05月20日增加设计规约大类共16条。1.5.0华山版2019年06月19日移除了“阿里巴巴”限定词强调是社区开发者集体智慧的结晶。新增21条新规约修改描述112处。1.6.0泰山版2020年04月22日发布错误码统一解决方案新增34条新规约如日期闰年闰月、三目运算拆箱、SQL表别名限定等修改描述90处。1.7.0嵩山版2020年08月03日新增前后端规约14条新增禁止歧视性用语等约定修正了BigDecimal比较、HashMap扩容等描述。1.7.1黄山版2022年02月新增11条新规约如浮点数后