Anda harus selalu membubuhi keterangan metode @Override
jika tersedia.
Dalam JDK 5 ini berarti metode overriding dari superclasses, dalam JDK 6, dan 7 itu berarti metode overriding dari superclasses, dan menerapkan metode antarmuka. Alasannya, seperti yang disebutkan sebelumnya, adalah memungkinkan kompiler untuk menangkap kesalahan di mana Anda pikir Anda mengganti (atau mengimplementasikan) metode, tetapi sebenarnya mendefinisikan metode baru (tanda tangan berbeda).
Contoh equals(Object)
vs. equals(YourObject)
adalah contoh standar, tetapi argumen yang sama dapat dibuat untuk implementasi antarmuka.
Saya membayangkan alasan mengapa tidak wajib menjelaskan metode implementasi antarmuka adalah bahwa JDK 5 menandai ini sebagai kesalahan kompilasi. Jika JDK 6 membuat anotasi ini wajib, itu akan merusak kompatibilitas.
Saya bukan pengguna Eclipse, tetapi di IDE lain (IntelliJ), @Override
anotasi hanya ditambahkan ketika menerapkan metode antarmuka jika proyek ditetapkan sebagai proyek JDK 6+. Saya akan membayangkan bahwa Eclipse serupa.
Namun, saya lebih suka melihat anotasi yang berbeda untuk penggunaan ini, mungkin @Implements
anotasi.