What is a base class?
Trả lời:
Đáp án đúng: D
Đáp án đúng là **A. An abstract class that is at the top of the inheritance hierarchy.**
**Giải thích:**
* **Base class (Lớp cơ sở):** Là một lớp mà các lớp khác kế thừa (inherit) từ nó. Nó cung cấp các thuộc tính và phương thức chung mà các lớp con (derived classes) có thể sử dụng hoặc ghi đè (override).
* **Top of the inheritance hierarchy (Đầu hệ thống phân cấp kế thừa):** Trong một hệ thống phân cấp kế thừa, lớp cơ sở thường nằm ở trên cùng, là lớp gốc mà từ đó các lớp khác phát triển.
* **Abstract class (Lớp trừu tượng):** Là một lớp không thể tạo đối tượng trực tiếp từ nó. Lớp trừu tượng thường chứa ít nhất một phương thức trừu tượng (pure virtual function), phương thức này phải được định nghĩa lại trong các lớp con.
Trong ngữ cảnh này, một "base class" thường là một lớp trừu tượng nằm ở đỉnh của hệ thống phân cấp kế thừa, định nghĩa các hành vi và thuộc tính chung mà tất cả các lớp con phải tuân theo. Mặc dù một base class có thể không nhất thiết phải là abstract, lựa chọn A là mô tả chính xác nhất về vai trò điển hình của một base class trong thiết kế hướng đối tượng.
**Các lựa chọn khác không đúng vì:**
* **B. A class with a pure virtual function in it.:** Một lớp có pure virtual function là một lớp trừu tượng (abstract class), nhưng không phải tất cả các base class đều là abstract.
* **C. A class that inherits from another class:** Đây là định nghĩa của một lớp con (derived class), không phải base class.
* **D. A class that is inherited by another class, and thus is included in that class.:** Mặc dù đúng là một base class được kế thừa bởi các lớp khác, nhưng mô tả này không đầy đủ vì nó không đề cập đến vai trò của base class trong việc cung cấp các thuộc tính và phương thức chung.