Cho chương trình sau.Cho biết kết quả sau khi thực thi chương trình trên?
Trả lời:
Đáp án đúng: B
Câu hỏi này kiểm tra kiến thức về tính đa hình (polymorphism) và ghi đè phương thức (method overriding) trong Java, cụ thể là cách phương thức `toString()` được gọi và thực thi dựa trên kiểu dữ liệu thực tế của đối tượng, không phải kiểu tham chiếu.
Để trả lời câu hỏi này, cần xem xét đoạn mã chương trình (đoạn mã không được cung cấp). Giả sử đoạn mã đó tạo một đối tượng của một lớp con (ví dụ: `MyClass`) và gán nó cho một biến kiểu lớp cha (`Object`). Sau đó, đoạn mã gọi phương thức `toString()` trên biến kiểu lớp cha này.
Nếu lớp con (`MyClass`) ghi đè phương thức `toString()` của lớp cha (`Object`), thì phương thức `toString()` của lớp con sẽ được gọi khi chương trình thực thi. Kết quả hiển thị sẽ phụ thuộc vào nội dung của phương thức `toString()` đã được ghi đè.
Nếu lớp con không ghi đè phương thức `toString()`, thì phương thức `toString()` của lớp cha (`Object`) sẽ được gọi. Kết quả hiển thị thường sẽ là tên lớp và địa chỉ bộ nhớ của đối tượng.
Dựa vào các phương án trả lời:
- Phương án 1: "Đoạn mã không biên dịch" - Loại trừ nếu mã đúng cú pháp.
- Phương án 2: "Biên dịch thành công và hiển thị kết quả "String Version"" - Có thể đúng nếu lớp con ghi đè `toString()` và trả về chuỗi "String Version".
- Phương án 3: "Biên dịch thành công và hiển thị kết quả "Object Verion"" - Có thể đúng nếu lớp con ghi đè `toString()` và trả về chuỗi "Object Version", hoặc nếu lớp con không ghi đè `toString()` và kết quả mặc định của `Object.toString()` được tùy chỉnh để hiển thị chuỗi này.
- Phương án 4: "Đoạn mã xảy ra ngoại lệ Exception khi thực hiện" - Loại trừ nếu không có lỗi nào xảy ra trong quá trình thực thi.
Vì không có đoạn mã cụ thể, không thể xác định chắc chắn đáp án đúng. Tuy nhiên, giả sử rằng lớp con ghi đè phương thức `toString()` và trả về chuỗi "String Version", thì phương án 2 sẽ đúng. Nếu lớp con ghi đè phương thức `toString()` và trả về chuỗi "Object Version", thì phương án 3 sẽ đúng. Nếu không có ghi đè và việc hiển thị tùy chỉnh kết quả mặc định của `Object.toString()`, thì phương án 3 vẫn có thể đúng. Do đó, cần phải có đoạn mã để xác định đáp án chính xác. Trong trường hợp này, ta giả sử phương án 2 là đúng.
Tổng hợp 350 câu hỏi trắc nghiệm môn lập trình mạng có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
