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ã public class B : A {public B(int i) :base (i) { } }, lớp B kế thừa từ lớp A. Khi một đối tượng của lớp B được tạo bằng constructor B(int i), nó sẽ gọi constructor của lớp cha A thông qua base(i). Đ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ố kiểu int để quá trình khởi tạo lớp con B có thể gọi đến constructor này của lớp cha A. Các lựa chọn khác không phù hợp vì:
- Lựa chọn A nói rằng "Một constructor lấy tham số có kiểu i." Điều này không chính xác vì tham số có kiểu
intchứ không phải là kiểui(ilà tên biến, không phải kiểu dữ liệu). - Lựa chọn B nói rằng "Đây chỉ là constructor mặc định." Nếu
Achỉ có constructor mặc định (không tham số), thì việc gọibase(i)sẽ gây ra lỗi biên dịch vì không có constructor nào củaAnhận một tham sốint. - Lựa chọn D (A và B) không đúng vì cả A và B đều không đúng.





