Tôi vẫn còn một số nhầm lẫn về điều này. Những gì tôi đã tìm thấy cho đến bây giờ làTại sao nên sử dụng Giao diện, Đa thừa kế và Giao diện, Lợi ích của Giao diện?
(câu hỏi tương tự đã được hỏi ở đây nhưng tôi đã có một số điểm khác.)
Interface là tập hợp các phương pháp trừu tượng CHỈ và các lĩnh vực chính thức.
Không có nhiều thừa kế trong Java.
Giao diện có thể được sử dụng để đạt được nhiều kế thừa trong Java.
Một điểm mạnh của thừa kế là chúng tôi có thể sử dụng mã của lớp cơ sở trong lớp dẫn xuất mà không cần viết lại. Có thể đây là điều quan trọng nhất để thừa kế ở đó.
Bây giờ ..
Q1. Vì các giao diện chỉ có các phương thức trừu tượng (không có mã) nên làm thế nào chúng ta có thể nói rằng nếu chúng ta đang thực hiện bất kỳ giao diện nào thì nó là thừa kế? Chúng tôi không sử dụng mã của nó.
Q2. Nếu thực hiện một giao diện không phải là thừa kế thì giao diện được sử dụng như thế nào để đạt được nhiều thừa kế?
Q3. Nhưng dù sao lợi ích của việc sử dụng Giao diện là gì? Họ không có bất kỳ mã nào. Chúng ta cần phải viết mã một lần nữa và một lần nữa trong tất cả các lớp chúng ta thực hiện nó.
Sau đó, tại sao tạo giao diện?
LƯU Ý: Tôi đã tìm thấy một trường hợp trong đó giao diện hữu ích. Một ví dụ của nó giống như trong giao diện Runnable chúng ta có phương thức public void run() trong đó chúng ta định nghĩa chức năng của thread và được xây dựng trong mã hóa rằng phương thức này sẽ được chạy như một luồng riêng biệt. Vì vậy, chúng tôi chỉ cần mã phải làm gì trong chuỗi, Phần còn lại được xác định trước. Nhưng điều này cũng có thể đạt được bằng cách sử dụng các lớp trừu tượng và tất cả.
Sau đó, lợi ích chính xác của việc sử dụng giao diện là gì? Nó thực sự là đa thừa kế mà chúng ta đạt được bằng cách sử dụng giao diện?
Tôi cảm thấy cấu trúc mà bạn đã xây dựng trong mã của bạn sẽ tốt hơn và hợp lý hơn với việc thừa kế thừa kế hơn là với các giao diện thực hiện. Tôi nghĩ rằng đó là một ví dụ khá xấu –
@gprathour Tôi đồng ý, vì vậy hãy cung cấp một ví dụ tốt hơn :) –