Trong thừa kế
class VUONG: CHUNHAT
{
public VUONG(double canh) : CHUNHAT(canh,canh)
{
}
}
Trả lời:
Đáp án đúng: D
Đoạn mã C# bạn cung cấp định nghĩa một lớp `VUONG` kế thừa từ lớp `CHUNHAT`. Trong constructor của `VUONG`, nó gọi constructor của lớp cơ sở `CHUNHAT` bằng cách sử dụng cú pháp `: CHUNHAT(canh, canh)`.
Phân tích:
- **Kế thừa:** Lớp `VUONG` kế thừa các thuộc tính và phương thức của lớp `CHUNHAT`.
- **Constructor của lớp dẫn xuất:** Constructor `VUONG(double canh)` nhận một tham số `canh`.
- **Gọi constructor của lớp cơ sở:** `: CHUNHAT(canh, canh)` là cú pháp để gọi constructor của lớp cơ sở `CHUNHAT` từ constructor của lớp dẫn xuất `VUONG`. Trong trường hợp này, nó gọi constructor của `CHUNHAT` với hai tham số đều là `canh`, tức là chiều dài và chiều rộng của hình chữ nhật bằng nhau, do đó tạo thành hình vuông.
Như vậy, đây là một ví dụ **đúng** về cách gọi constructor của lớp cơ sở từ lớp dẫn xuất. Constructor của lớp cơ sở `CHUNHAT` được gọi với hai tham số, khởi tạo chiều dài và chiều rộng của hình chữ nhật (trong trường hợp này là hình vuông) với giá trị `canh`.
Do đó, các phương án sai là:
- *Là ví dụ sai về cách gọi hàm thành viên của lớp cơ sở từ lớp dẫn xuất* (vì đây là constructor, không phải hàm thành viên thông thường)
- *Là ví dụ sai về cách gọi hàm constructor của lớp cơ sở từ lớp dẫn xuất* (vì đây là ví dụ đúng)
- *Là ví dụ đúng về cách gọi hàm thành viên của lớp cơ sở từ lớp dẫn xuất* (vì đây là constructor, không phải hàm thành viên thông thường)