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

Sự khác biệt cụ thể giữa Interface và abstract class là gì?

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

junior

Trong lập trình OOP, lớp trừu tượng là gì?

senior

Sự khác biệt giữa phương thức trừu tượng và phương thức ảo là gì?

senior

Lợi ích của việc sử dụng các phương thức getter và setter - chỉ để lấy và đặt giá trị - thay vì sử dụng trực tiếp các trường công cộng cho những biến đó là gì?

Bình luận

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

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