Tôi đã tìm thấy chú thích @Override
rất hữu ích trong khi ghi đè một số phương thức siêu lớp trong các lớp dẫn xuất của tôi. Về cơ bản trình biên dịch phát hiện các lỗ hổng trong chương trình của tôi sớm mà luôn luôn là một điều tốt. Nhưng tại sao không có chú thích @Implements trong Java?Tại sao không có chú thích @Implements trong Java?
Trả lời
Vì bạn sử dụng @Override
cho các phương thức do giao diện xác định.
(Vâng, bạn đang "thực hiện" hơn là "trọng" ... nhưng @Override
được sử dụng cho cả hai)
Chỉ kể từ JDK 6, mặc dù. –
@RyanStewart - Đó là sự thật, nhưng kể từ khi chúng tôi phát hành 6 năm trước và trên thực tế tại EOL cho 6 tôi thực sự đã ngừng đủ điều kiện trừ khi đó là một điều 6 so với 7 :) –
Tuy nhiên, thật đáng buồn, trong năm qua (4 năm sau khi bình luận cuối cùng) Tôi đã phải mã cổng để Java 5 để nó có thể chạy bên trong Oracle 11. Old Javas không bao giờ chết, họ chỉ ẩn trong chờ đợi cho người không tự nguyện. –
Để thực hiện một giao diện từ khóa đã tồn tại: implements
. nhưng để ghi đè, không có từ khóa nào tồn tại. @Override
không phải là từ khóa nhưng hoạt động tương tự.
Để triển khai giao diện chúng tôi sử dụng implements
và nếu có bất kỳ phương pháp nào tồn tại trong giao diện đó thì chúng tôi sẽ ghi đè các phương pháp đó để cung cấp triển khai.
Vì vậy, chỉ có chú thích @Override
vì trong cả hai trường hợp (lớp hoặc giao diện), chúng tôi luôn ghi đè.
Vì Java 6 bạn có thể sử dụng @Override trên các phương thức lớp thực hiện các phương thức được xác định trong giao diện
- 1. Tại sao JPA có chú thích @Transient?
- 2. Tại sao mọi người không thích chú thích?
- 3. Tại sao tất cả các câu lệnh không được chú thích trong Java?
- 4. Tại sao có khác nhau chú thích quản lý đậu
- 5. Tại sao checkNotNull() không được chú thích bằng @Nonnull
- 6. Java chú thích
- 7. Tại sao chú thích kiểu này trong Haskell cần thiết?
- 8. Chú thích Java - Có thư viện trợ giúp nào để đọc/xử lý chú thích không?
- 9. Bạn có sử dụng chú thích Java không?
- 10. @XmlElementRefs & @XmlElementRef chú thích trong Java
- 11. Chú thích Java SafeVarargs, thực tiễn tiêu chuẩn hay tốt nhất có tồn tại không?
- 12. Thứ tự chú thích Java có liên tục không?
- 13. Thực hiện chú thích java tại thời gian biên dịch
- 14. Java - JPA - Chú thích @Version
- 15. Thêm chú thích Java tại thời gian chạy
- 16. Có chú thích @NonNullByDefault trong IDEA không?
- 17. Chú thích giống Java trong C++
- 18. Tại sao chú thích @RequestMapping chấp nhận tham số Chuỗi trong java nhưng không phải trong scala?
- 19. Tại sao java.io.Serializable không được chấp nhận trong Java 5?
- 20. Tại sao chúng ta sử dụng chú thích ngủ đông?
- 21. chú thích vô hình?
- 22. Có điều gì đó giống như Ghi chú chú thích trong java?
- 23. EJB 3.1. Chú thích @Local có cần thiết không?
- 24. Chú thích Bộ điều hợp Java
- 25. eclipse java chú thích xử lý
- 26. Tại sao các lớp java không kế thừa các chú thích từ các giao diện được triển khai?
- 27. Java Generics và chú thích: Type-Safe
- 28. Xem chú thích java trên phương pháp
- 29. Chèn chú thích tùy chỉnh trong 'trường' java sử dụng plugin chú thích + JAXB (khi xsd -> java)
- 30. Chú thích vs Interface trong ổi EventBus
'@ Ghi đè' là loại hình thức; nó không thực sự cần thiết. Trình biên dịch sẽ không thất bại nếu bạn không có chú thích đó. Tuy nhiên, khi bạn đang triển khai * một giao diện, trình biên dịch sẽ hét lên nếu bạn không thực hiện mọi phương thức đã định nghĩa trong giao diện đó. – Makoto
@Makoto - Tôi nghi ngờ anh ấy có nghĩa là IDE của anh ấy chứ không phải trình biên dịch. Điều đó nói rằng, nếu bạn đã làm 'javac -Xlint: ghi đè' (hoặc chỉ' -Xlint') nó * sẽ * cho bạn biết về nó, vì vậy có lẽ anh ta đang làm điều đó. –
(sẽ cho bạn biết về nó nếu bạn đã thực hiện một lỗi khi ghi đè, tôi nên nói). –