Tại sao giao diện cho phép có phương thức main
trong Java 8
?Tại sao giao diện trong Java-8 được phép có phương pháp chính?
Như đã nêu trong mã bên dưới, nó hoạt động tốt và tạo ra đầu ra đúng cách.
public interface Temp {
public static void main(String args[]){
System.out.println("Hello");
}
}
OUTPUT (Sau khi chạy Temp.java)
Hello
Vì vậy, sự khác biệt giữa phương pháp chính của interface
và class
là gì?
Hiện nay nó là hành xử như một lớp học và tôi đã thực hiện interface
với phương pháp chính.
Tại sao chúng ta cần điều này?
EDIT
Thêm nhiều đến câu hỏi hiện, từ những nhận xét được nêu dưới đây (Tác giả Brian Goetz)
nên chúng tôi đã không cho phép một cách rõ ràng
main
phương pháp hiện tại làstatic
phương pháp được cho phép tronginterfaces
(hay tương đương, loại trừ'interface classes'
như mục tiêu cho các phóng java.)
Tôi nghĩ bạn có câu hỏi ngược. Câu hỏi không phải là "nên cho phép phương thức chính", nó là "chúng ta nên không cho phép các phương thức chính bây giờ mà các phương thức tĩnh được phép trong các giao diện" (hoặc, tương đương, loại trừ các lớp giao diện làm đích cho trình khởi chạy java). đã thêm * quy tắc phụ * chỉ để loại trừ một số thứ mà một số người nhận thấy là lạ (nhưng không nguy hiểm) - và đó là trò chơi thua cuộc. Bạn muốn xác định một số quy tắc mới khi bạn có thể hợp lý - bởi vì nếu không bạn sẽ bị méo mó vì phức tạp. –
@BrianGoetz Có đồng ý !! Tôi đang tìm kiếm điều tương tự như tôi đã thể hiện nó với đầu ra và mối quan tâm của tôi là, tại sao chúng ta có một giao diện thực sự hoạt động giống như một lớp và Java có thể thực thi phương thức chính của _interface_.At giao diện kết thúc thực sự là một lớp và java không thể phân biệt giữa chính của giao diện và lớp. –
Giao diện * là * loại lớp và luôn có. Chúng có một số giá trị mặc định khác nhau (các phương thức công khai và trừu tượng) và một số hạn chế khác nhau. Trong Java 8, chúng tôi đã loại bỏ một số hạn chế - chẳng hạn như hạn chế đối với các phương thức tĩnh. Chúng tôi sẽ không đưa ra một quy tắc đặc biệt để loại bỏ một phương pháp tĩnh cụ thể chỉ vì nó có vẻ kỳ lạ lúc đầu với một vài người. Khi bạn thực sự hiểu các quy tắc mới, điều này sẽ không có vẻ lạ - thực tế, hạn chế bạn đề xuất sẽ có vẻ lạ. –