Phương thức nào đưa vào dòng 6 sẽ sinh lỗi?
Chọn một câu trả lời
class Super {
public float getNum() { return 3.0f; }
}
public class Sub extends Super {
}
Chọn một câu trả lời
class Super {
public float getNum() { return 3.0f; }
}
public class Sub extends Super {
}
Trả lời:
Đáp án đúng: A
Câu hỏi kiểm tra về tính kế thừa và ghi đè phương thức (method overriding) trong Java. Khi một lớp con (Sub) kế thừa từ lớp cha (Super), nó có thể ghi đè (override) các phương thức của lớp cha. Việc ghi đè cần tuân thủ một số quy tắc.
* **Đáp án A:** `public getNum() { }` - Thiếu kiểu trả về (return type), gây ra lỗi biên dịch. Vì phương thức `getNum()` ở lớp cha trả về `float`, nên phương thức ghi đè ở lớp con phải có kiểu trả về tương thích hoặc giống hệt.
* **Đáp án B:** `public float getNum(double d) { }` - Đây là nạp chồng phương thức (method overloading), không phải ghi đè. Vì tham số khác với phương thức ở lớp cha.
* **Đáp án C:** `public float getNum() { return 4.0f; }` - Đây là một cách ghi đè hợp lệ. Nó có cùng tên, cùng kiểu trả về và cùng số lượng tham số (không có tham số) với phương thức ở lớp cha.
* **Đáp án D:** `public double getNum(float d) { return 4.0d; }` - Đây là nạp chồng phương thức, không phải ghi đè. Vì tham số khác với phương thức ở lớp cha.
Vậy, phương thức ở đáp án A sẽ sinh lỗi do thiếu kiểu trả về.
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
