Từ khóa nào sau đây được dùng khi lớp con muốn cài lại phương thức được thừa kế từ lớp cha
Trả lời:
Đáp án đúng: C
Trong lập trình hướng đối tượng, khi một lớp con (derived class) kế thừa một phương thức từ lớp cha (base class), lớp con có thể muốn thay đổi cách hoạt động của phương thức đó cho phù hợp với ngữ cảnh của nó. Việc này được gọi là ghi đè (override) phương thức.
* **`new`**: Từ khóa `new` được sử dụng để che giấu một phương thức kế thừa từ lớp cha. Khi sử dụng `new`, phương thức mới trong lớp con sẽ không thay thế phương thức trong lớp cha, mà chỉ đơn thuần là che giấu nó. Nếu bạn gọi phương thức từ một đối tượng của lớp cha, phương thức của lớp cha sẽ được thực thi. Nếu bạn gọi phương thức từ một đối tượng của lớp con, phương thức của lớp con sẽ được thực thi. Đây không phải là ghi đè phương thức.
* **`virtual`**: Từ khóa `virtual` được sử dụng trong lớp cha để khai báo một phương thức có thể được ghi đè bởi lớp con. Nếu một phương thức không được khai báo là `virtual`, nó không thể được ghi đè.
* **`override`**: Từ khóa `override` được sử dụng trong lớp con để chỉ ra rằng phương thức này đang ghi đè một phương thức `virtual` hoặc `abstract` từ lớp cha. Khi sử dụng `override`, trình biên dịch sẽ kiểm tra xem phương thức trong lớp cha có thể ghi đè hay không. Nếu không, trình biên dịch sẽ báo lỗi. Đây là cách chính xác để cài đặt lại một phương thức từ lớp cha.
* **`abstract`**: Từ khóa `abstract` được sử dụng để khai báo một lớp hoặc phương thức trừu tượng. Lớp trừu tượng không thể được khởi tạo trực tiếp và phương thức trừu tượng không có phần thân (body) và phải được ghi đè bởi lớp con.
Vì vậy, từ khóa `override` là từ khóa chính xác để một lớp con cài đặt lại phương thức được thừa kế từ lớp cha.