Trả lời:
Đáp án đúng: D
Câu hỏi đề cập đến khái niệm "Sự trừu tượng" trong lập trình hướng đối tượng.
* **Abstraction (Trừu tượng)**: Là quá trình loại bỏ những chi tiết không cần thiết và chỉ tập trung vào những thông tin quan trọng. Nó cho phép chúng ta đơn giản hóa các đối tượng phức tạp bằng cách chỉ hiển thị các thuộc tính và phương thức cần thiết cho người dùng.
* **Encapsulation (Đóng gói)**: Là việc gói dữ liệu (thuộc tính) và các phương thức thao tác dữ liệu đó vào trong một đơn vị duy nhất (thường là một lớp). Mục đích là để bảo vệ dữ liệu khỏi sự truy cập trực tiếp từ bên ngoài và kiểm soát cách dữ liệu được sử dụng.
* **Inheritance (Kế thừa)**: Là cơ chế cho phép một lớp (lớp con) kế thừa các thuộc tính và phương thức của một lớp khác (lớp cha). Điều này giúp tái sử dụng mã và xây dựng các hệ thống phân cấp lớp.
* **Polymorphism (Đa hình)**: Là khả năng của một đối tượng có thể có nhiều hình thức khác nhau. Ví dụ, một phương thức có thể hoạt động khác nhau tùy thuộc vào kiểu dữ liệu của các đối số truyền vào.
Như vậy, đáp án đúng là D. Abstraction