Bắt đầu với Java 8, defaultcác phương thức đã được đưa vào các giao diện. Một cách hiệu quả, phương tiện này mà không phải tất cả các phương pháp trong một interfacelàabstract .
Bắt đầu với Java 9 (có thể), privatecác phương thức sẽ được cho phép. Điều này có nghĩa rằng không phải tất cả các phương pháp trong một interfacelàpublic abstract .
Câu hỏi "Các phương thức trong giao diện Java có nên được khai báo có hoặc không có công cụ publicsửa đổi truy cập không?" đã được hỏi tại Stack Overflow tại /programming/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access-m
Ở đó, hầu hết các câu trả lời cho rằng public abstractkhông nên sử dụng vì không có phương pháp nào trong một interfacecó thể là bất cứ điều gì khác ngoàipublic abstract . Điều này không còn là trường hợp nữa.
Vì vậy, trong các tính năng mới của các giao diện, nên public abstract từ khóa có nên được sử dụng trong khai báo phương thức giao diện Java không?
Trong môi trường cụ thể của tôi, chúng tôi sẽ có những người là kỹ sư phần mềm có kinh nghiệm, nhưng không có kinh nghiệm về Java, thỉnh thoảng đọc mã Java. Tôi cảm thấy rằng việc bỏ đi các public abstracttừ khóa bây giờ sẽ tạo thêm một điểm nhầm lẫn cho những người không quen thuộc với lịch sử về cách các giao diện xuất hiện để có các quy tắc khác nhau để sử dụng các từ khóa này.
abstractđang ngày càng trở nên hỗn độn. Trong Java 9, cùng một câu có thể là "Phương thức giao diện thiếu công cụ defaultsửa đổi hoặc công cụ staticsửa đổi hoặc công cụ privatesửa đổi hoàn toàn trừu tượng ..." Ngoài ra, các đối số phụ trợ không sử dụng từ khóa một cách rõ ràng, cụ thể là tất cả các phương thức giao diện là public abstract, bây giờ đang tranh luận
streamvào java.util.Collection, hoặc Map.getOrDefault(). Thay thế là tạo giao diện phụ mới và khiến mọi người thất vọng, như Graphics2D, và không ai thích điều đó!
defaultsửa đổi hoặc công cụstaticsửa đổi là hoàn toànabstract... không khuyến khích như một vấn đề về phong cách, để chỉ định một cách thừa thãi công cụabstractsửa đổi cho một tuyên bố phương thức như vậy. " Tại sao bạn mong đợi rằng mọi thứ sẽ thay đổi?