Giả sử rằng:
public class B : A { public B(int i) : base(i) { } }
Biên dịch và chạy đúng, chúng ta có thể kết luận gì về các constructor trong lớp A?
Trả lời:
Đáp án đúng: C
Trong đoạn mã C# đã cho, lớp B
kế thừa từ lớp A
và có một constructor public B(int i) : base(i) { }
. Cú pháp : base(i)
chỉ ra rằng constructor của lớp B
gọi đến constructor của lớp cha (lớp A
) và truyền tham số i
cho constructor đó.
Vì đoạn mã biên dịch và chạy đúng, điều này có nghĩa là lớp A
phải có một constructor chấp nhận một tham số có kiểu int
. Nếu không, trình biên dịch sẽ báo lỗi vì không tìm thấy constructor phù hợp trong lớp A
để gọi.
Các lựa chọn khác:
- Một constructor lấy tham số có kiểu i: Sai vì 'i' là tên biến, không phải kiểu dữ liệu.
- Đây chỉ là constructor mặc định: Sai vì constructor mặc định không nhận tham số.
- A và B: Không rõ nghĩa và không chính xác trong ngữ cảnh này.