Ý nghĩa khi khai báo 1 class vừa là abstract vừa là interface

Đề bài cho:

public abstract interface Frobnicate {
       public void twiddle(String s);
    }

Anh chị cho em hỏi xíu ạ, từ khóa abstract với interface viết chung với nhau có được không? Lần đầu tiên em thấy trường hợp này. Em tưởng hoặc là abstract, hoặc là interface? Hai keyword này viết chung không bị lỗi cú pháp nhưng có bị sai logic không?

Em cảm ơn!

thời gian bạn gõ câu hỏi này, đủ để bạn có thể thao tác ctrl + c để copy và ctrl + v để paste vào một file java, và chạy thử file java đó đấy

7 Likes

Em thắc mắc về ý nghĩa và logic ạ. Chắc chắn là nó không lỗi cú pháp nhưng trong thực tế nó không biết có ai làm vậy không, nó không đúng với cách giải thích này:

Về ý nghĩa, interface là 1 trường hợp đặc biệt của abstract, nhưng khác với abstract class thì interface trừu tượng hoàn toàn. Vì abstract class thì có thể khai báo method với implementation, còn interface chỉ có thể khai báo hằng và abstract method

Về cú pháp, abstract interface Frobnicate là interface chứ ko phải abstract class, mà interface mang nghĩa trừu tượng rồi nên bỏ thêm từ abstract nó cũng ko sai, nhưng ko cần thiết

5 Likes

Dạ em cảm ơn nhiều! :+1:

2 Likes

SO có bài từ 2011 hay lắm đây:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?