Jawaban:
@Override awalnya tidak dalam bahasa. Ketika merasa perlu menambahkannya, lebih mudah menggunakan mekanisme umum (anotasi) daripada menambahkan kata kunci baru ke bahasa. Menambahkan kata kunci baru selalu merupakan perubahan yang tidak kompatibel karena dapat merusak program yang menggunakan kata itu sebagai pengenal.
Dalam bahasa yang menambahkan penanda override sejak hari pertama, kata kunci ini sering kali merupakan kata kunci (contohnya adalah Kotlin dan Scala), di Jawa soal tetap kompatibel dengan versi Java yang lebih lama yang tidak memiliki marker override.
default
sudah kata kunci yang dipesan (digunakan dalam pernyataan peralihan) - mereka hanya menambahkan penggunaan baru untuk itu. Ada juga beberapa kata kunci yang tidak melakukan apa-apa saat ini tetapi dicadangkan untuk penggunaan di masa mendatang (const, goto) - lihat JLS §3.9
enum
kata kunci yang ditambahkan akan merusak kode lama. Lebih banyak melanggar kata kunci di sini: stackoverflow.com/questions/16506411
Anda tidak memerlukan anotasi @Override untuk benar-benar mengesampingkan perilaku; Ini anotasi karena itu hanya menambahkan beberapa konteks maksud metode untuk kompiler, bukan mengubah metode itu sendiri.
Tanpa anotasi, Anda mungkin bermaksud untuk menimpa fungsionalitas, tetapi secara tidak sengaja gagal melakukannya (dengan menggunakan tanda tangan yang sedikit berbeda). Menambahkan anotasi memberitahu kompiler untuk menghasilkan kesalahan jika metode ini tidak benar-benar mengesampingkan perilaku.
Karena itu, sangat masuk akal sebagai anotasi.