Giao diện trong Java tương tự như một lớp, nhưng phần thân của giao diện chỉ có thể bao gồm các phương thức và
final
trường trừu tượng (hằng số).
Gần đây, tôi thấy một câu hỏi, có dạng như sau
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Theo định nghĩa giao diện, chỉ cho phép các phương thức trừu tượng . Tại sao nó cho phép tôi biên dịch đoạn mã trên? Là gì default
từ khoá?
Mặt khác, khi tôi cố gắng viết mã bên dưới, thì nó nói modifier default not allowed here
default class MyClass{
}
thay vì
class MyClass {
}
Bất cứ ai có thể cho tôi biết mục đích của default
từ khóa? Nó chỉ được phép bên trong một giao diện? Nó khác với default
(không có công cụ sửa đổi truy cập) như thế nào?