Được rồi, tôi biết đó là quy tắc:Tại sao giao diện chỉ có thể được khai báo trong lớp cấp cao nhất?
Theo JLS: 8.1.3 Lớp Nội và Instances Kèm theo, bên trong lớp chưa được công bố initializers tĩnh hoặc giao diện thành viên. Các lớp bên trong có thể không khai báo thành viên tĩnh, trừ khi chúng là trường hằng số biên dịch.
Theo 8.5.2 Static Thành viên Loại khai báo, "giao diện Thành viên luôn ngầm tĩnh. Nó được cho phép nhưng không bắt buộc cho tuyên bố một giao diện thành viên một cách rõ ràng danh sách các tĩnh modifier". Họ luôn là cấp cao nhất, không phải bên trong.
Tôi tự hỏi tại sao. Điều gì có thể xảy ra nếu chúng ta được phép khai báo giao diện trong một lớp bên trong? Liệu lớp bên trong có trở thành lớp cấp cao nhất không nếu tôi đặt nó vào một tệp lớp khác?
Hmm, thú vị! Tôi không bao giờ biết rằng giao diện có thể được khai báo là tĩnh. "Tĩnh" có nghĩa là gì ở đây? Tôi đã thử giao diện tĩnh của Google nhưng chưa tìm ra bất kỳ thứ gì. P/s: Chỉ cần chỉnh sửa bài đăng của tôi ở dòng bạn trích dẫn, để sửa lỗi ngữ pháp. –
@ W.N .: Giao diện ẩn hoàn toàn. Tuyên bố đó chỉ là màu đỏ. –
@Ryan điểm tốt, tôi cũng chỉ đọc lại câu hỏi và sẽ cập nhật câu trả lời của tôi. – Thomas