Bạn phải luôn chú thích các phương thức @Override
nếu có.
Trong JDK 5, điều này có nghĩa là ghi đè các phương thức của siêu lớp, trong JDK 6 và 7, nó có nghĩa là ghi đè các phương thức của siêu lớp và thực hiện các phương thức giao diện. Lý do, như đã đề cập trước đây, là nó cho phép trình biên dịch bắt lỗi trong đó bạn nghĩ rằng bạn đang ghi đè (hoặc thực hiện) một phương thức, nhưng thực sự đang xác định một phương thức mới (chữ ký khác).
Các equals(Object)
so với equals(YourObject)
ví dụ là một trường hợp tiêu chuẩn tại điểm, nhưng lập luận tương tự có thể được thực hiện cho triển khai giao diện.
Tôi tưởng tượng lý do không bắt buộc phải chú thích các phương thức triển khai giao diện là vì JDK 5 đã đánh dấu đây là lỗi biên dịch. Nếu JDK 6 thực hiện chú thích này là bắt buộc, nó sẽ phá vỡ tính tương thích ngược.
Tôi không phải là người dùng Eclipse, nhưng trong các IDE khác (IntelliJ), @Override
chú thích chỉ được thêm vào khi thực hiện các phương thức giao diện nếu dự án được đặt là dự án JDK 6+. Tôi sẽ tưởng tượng rằng Eclipse là tương tự.
Tuy nhiên, tôi muốn thấy một chú thích khác cho cách sử dụng này, có thể là một @Implements
chú thích.