# Java @Override 注解

**URL:** <https://www.isharkfly.com/t/java-override/15038>\
**Category:** 程序语言\
**Tags:** java\
**Created:** [October 9, 2023, 2:49pm UTC](https://www.isharkfly.com/t/java-override/15038 "2023-10-09T14:49:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [October 9, 2023, 2:49pm UTC](https://www.isharkfly.com/t/java-override/15038/1 "2023-10-09T14:49:21Z")

</div>

在代码中，你可能会看到大量的 @Override 注解。

这个注解简单来说就是让编译器去读的，能够避免你在写代码的时候犯一些低级的拼写错误。

Java @Override 注解用来指定方法重写（Override），只能修饰方法并且只能用于方法重写，不能修饰其它的元素。

@Override 注解可以强制一个子类必须重写父类方法或者实现接口的方法。

## 用途

@Override 主要是为了让编译器用的，告诉编译器使用这个注解的方法是重写（Override）的方法。

因为 重写（Override）的特性是，参数和返回以及方法名都不能变。

如果在写代码的时候，因为方法名不小心敲错了，在没有 @Override 这个注解之前是比较难发现的，所以我们使用 @Override 能够告诉编译器，这里对 重写方法注意下。

## 必须吗

这个注解不是必须的，在 JDK 的早期版本，没有注解之前，我们对重新的方法通常都不没有任何标记。

这个会导致一些书写错误，没有办法在编译的阶段发现。

所以不用这个注解也没有关系，但用了这个注解通常能够让代码更加可读一些。

 ![2023-10-09_10-54-11](https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/2X/6/61098107d04ece7a33c2bb8045d4b6a05069030a.jpeg)

具体开始使用是从 JDK 1.5 版本开始的。
