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

Phân biệt giữa lớp trừu tượng (abstract class) và giao diện (interface)

Câu trả lời

Lớp trừu tượng (abstract class) và giao diện (interface) là hai khái niệm cơ bản trong lập trình hướng đối tượng, đặc biệt là trong ngôn ngữ Java. Dưới đây là sự khác biệt chính giữa chúng:

  1. Phương thức:

    • Abstract Class: Có thể chứa cả phương thức trừu tượng (không có thân) và phương thức cụ thể (có thân). Điều này cho phép lớp trừu tượng định nghĩa cách thức hoạt động của một số phương thức, trong khi vẫn giữ tính trừu tượng của các phương thức khác[1][2][3][4].
    • Interface: Trước Java 8, chỉ chứa phương thức trừu tượng. Từ Java 8 trở đi, interface có thể chứa phương thức default và static, nhưng không thể chứa phương thức cụ thể như trong abstract class[2][3].
  2. Biến:

    • Abstract Class: Có thể chứa các biến final, non-final, static và non-static. Điều này 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][3][4].
    • Interface: Chỉ có thể chứa biến static và final. Các biến này không thay đổi và không cần được khởi tạo lại ở mỗi lớp triển khai interface[2][3].
  3. Kế thừa và Triển khai:

    • Abstract Class: Một lớp chỉ có thể kế thừa từ một abstract class, nhưng có thể triển khai nhiều interface[3][4][6].
    • Interface: Một lớp có thể triển khai nhiều interface, điều này giúp Java có khả năng đa kế thừa gián tiếp thông qua interface[2][3][5].
  4. Khai báo:

    • Abstract Class: Sử dụng từ khóa abstract để khai báo. Ví dụ: public abstract class Shape { … }[2][3].
    • Interface: Sử dụng từ khóa interface để khai báo. Ví d...
senior

senior

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

junior

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

junior

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

junior

Một "class" là gì?

Bình luận

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

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