Câu hỏi phỏng vấn OOP
Câu hỏi

Sự khác biệt cụ thể giữa Inte...

Câu trả lời

Sự khác biệt cụ thể giữa Interface và abstract class trong lập trình, cụ thể là trong ngôn ngữ Java, bao gồm:

  • Tính trừu tượng: Interface đạt tính trừu tượng hoàn toàn (100%) vì nó chỉ định các hành động cần thiết mà không cung cấp triển khai cụ thể. Trong khi đó, abstract class có thể chứa cả phương thức trừu tượng và phương thức cụ thể (concrete methods), do đó không đạt tính trừu tượng hoàn toàn[1][2].

  • Phương thức: Từ Java 8, Interface có thể chứa phương thức default và static bên cạnh phương thức trừu tượng, trong khi abstract class có thể bao gồm cả phương thức trừu tượng và phương thức cụ thể[1][2].

  • Biến: Interface chỉ có thể chứa biến static và final, đảm bảo rằng các biến không thay đổi và không cần khởi tạo lại ở mỗi lớp triển khai. Trong khi đó, abstract class có thể chứa biến final, biến non-final, biến static và biến non-static, cho phép các biến có khả năng thay đổi giá trị và được sử dụng trong các lớp con[1][2].

  • Khai báo: Interface được khai báo sử dụng từ khóa “interface”, còn abstract class sử dụng từ khóa “abstract”[1][2].

  • Đa kế thừa: Một lớp có thể triển khai (implement) nhiều Interface, nhưng chỉ có thể kế thừa (extend) một abstract class[1][2].

  • Mức độ truy cập: Các phương thức trong Interface mặc định là public, trong khi abstract class có thể có các phương thức với các mứ...

senior

senior

Gợi ý câu hỏi phỏng vấn

expert

Tại sao C# không cho phép các phương thức tĩnh thực thi một giao diện?

junior

Mối quan hệ giữa lớp và đối tượng là gì?

junior

Tính OOP, tính đa hình là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào