Java 8 giới thiệu các phương thức mặc định để cung cấp khả năng mở rộng giao diện mà không cần sửa đổi các triển khai hiện có.
Tôi tự hỏi liệu có thể gọi một cách rõ ràng việc triển khai mặc định của một phương thức khi phương thức đó đã bị ghi đè hoặc không khả dụng do các xung đột triển khai mặc định trong các giao diện khác nhau.
interface A {
default void foo() {
System.out.println("A.foo");
}
}
class B implements A {
@Override
public void foo() {
System.out.println("B.foo");
}
public void afoo() {
// how to invoke A.foo() here?
}
}
Xem xét mã ở trên, bạn sẽ gọi A.foo()
từ một phương thức của lớp B như thế nào?