JavaScript is required

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?

A.

Một constructor lấy tham số có kiểu i.

B.

Đây chỉ là constructor mặc định.

C.

Một constructor lấy tham số có kiểu là int.

D.
A và B
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 int chứ không phải là kiểu i (i là 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 A chỉ có constructor mặc định (không tham số), thì việc gọi base(i) sẽ gây ra lỗi biên dịch vì không có constructor nào của A nhậ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.

Câu hỏi liên quan