Mặc dù thực tế là câu hỏi này đã được hỏi từ lâu nhưng tôi cảm thấy một mô tả toàn diện sẽ làm rõ lý do tại sao không cần sử dụng trừu tượng công khai trước các phương thức và chung kết tĩnh trước các hằng số của giao diện.
Trước hết Giao diện được sử dụng để chỉ định các phương thức phổ biến cho một tập hợp các lớp không liên quan mà mỗi lớp sẽ có một triển khai duy nhất. Do đó, không thể chỉ định công cụ sửa đổi truy cập là riêng tư vì các lớp khác không thể bị truy cập để ghi đè.
Thứ hai, Mặc dù người ta có thể khởi tạo các đối tượng của một loại giao diện nhưng một giao diện được nhận ra bởi các lớp thực hiện nó và không được kế thừa. Và vì một giao diện có thể được triển khai (nhận ra) bởi các lớp không liên quan khác nhau không cùng gói, do đó, công cụ sửa đổi truy cập được bảo vệ cũng không hợp lệ. Vì vậy, đối với công cụ sửa đổi truy cập, chúng tôi chỉ còn lại sự lựa chọn công khai.
Thứ ba, một giao diện không có bất kỳ triển khai dữ liệu nào bao gồm các biến và phương thức thể hiện. Nếu có lý do hợp lý để chèn các phương thức được thực hiện hoặc các biến thể hiện trong một giao diện thì nó phải là một siêu lớp trong hệ thống phân cấp kế thừa chứ không phải là một giao diện. Xem xét thực tế này, vì không có phương thức nào có thể được thực hiện trong một giao diện do đó tất cả các phương thức trong giao diện phải trừu tượng.
Thứ tư, Giao diện chỉ có thể bao gồm hằng số là thành viên dữ liệu của nó, điều đó có nghĩa là chúng phải là cuối cùng và tất nhiên các hằng số cuối cùng được khai báo là tĩnh để chỉ giữ một thể hiện của chúng. Do đó, cuối cùng tĩnh cũng là một bắt buộc cho các hằng số giao diện.
Vì vậy, trong kết luận mặc dù sử dụng trừu tượng công khai trước các phương thức và công khai tĩnh cuối cùng trước các hằng số của giao diện là hợp lệ nhưng vì không có tùy chọn nào khác nên nó được coi là dự phòng và không được sử dụng.