質問: アノテーションによっては書かないと、不具合が発生するものがありますが、@Override、@Testに関しては、なくてもメソッドのオーバーライドできるし、テストも動作します。やっぱりただの目印ですか。
回答: `@Override`アノテーションは、そのメソッドがスーパークラスのメソッドをオーバーライドしていることをコンパイラに伝えるためのアノテーションです。 そのため、オーバーライドしていないメソッドに対してこのアノテーションを付けると、コンパイルエラーとなります。 swordone様の回答にある通り、 > > ミスに気づきやすくなる > > > ためのアノテーションです。 `@Test`アノテーションは、それがテストメソッドであることを JUnit に伝えるためのアノテーションです。 古いバージョンの JUnit では `test***`という名前のメソッドだけがテストメソッドだとみなされましたが、 JUnit4 からは、このアノテーションを付けたメソッドが(どのような名前であっても)テストメソッドだとみなされるようになっています。 `@Override`とは用途が異なり、こちらはフレームワークに対して「それが何を意味するものなのか」を伝えるためのアノテーションと言えます。 ところで、私もうろ覚えで恐縮なのですが、 > > テストも動作します。 > > > について、Junit4以降では`@Test`アノテーションを付けないとテストメソッドだとみなされなかったように記憶していますが、、