JavaScript is required

Phương thức nào đưa vào dòng 6 sẽ sinh lỗi?
class Super {
public float getNum() {
return 3.0f;
}
}
public class Sub extends Super {
}

A.
public getNum() { }
B.
public float getNum(double d) { }
C.
public float getNum() { return 4.0f; }
D.
public double getNum(float d) { return 4.0d; }
Trả lời:

Đáp án đúng: A


Phương thức ở dòng 6 gây ra lỗi là phương thức A. public getNum() { }. Bởi vì phương thức này không khai báo kiểu trả về (return type). Trong Java, mỗi phương thức phải có kiểu trả về rõ ràng, ngay cả khi nó không trả về giá trị nào (void). Các phương thức còn lại đều hợp lệ: - B. public float getNum(double d) { }: Đây là một phương thức nạp chồng (overload) của phương thức getNum() trong lớp cha. Nó có cùng tên nhưng khác tham số. - C. public float getNum() { return 4.0f; }: Đây là một phương thức ghi đè (override) hợp lệ của phương thức getNum() trong lớp cha. Nó có cùng tên, cùng tham số và kiểu trả về tương thích. - D. public double getNum(float d) { return 4.0d; }: Đây cũng là một phương thức nạp chồng (overload) hợp lệ, có cùng tên nhưng khác tham số và kiểu trả về có thể chuyển đổi được (double có thể nhận giá trị float).

Câu hỏi liên quan