Chương trình sẽ in ra cái gì?
class A {
final public int method1(int a, int b) {
return 0;
}
}
class B extends A {
public int method1(int a, int b) {
return 1;
}
}
public class Test {
public static void main(Strings args[]) {
B b;
System.out.println("x = " + b.method1(0, 1));
}
}
class A {
final public int method1(int a, int b) {
return 0;
}
}
class B extends A {
public int method1(int a, int b) {
return 1;
}
}
public class Test {
public static void main(Strings args[]) {
B b;
System.out.println("x = " + b.method1(0, 1));
}
}
Trả lời:
Đáp án đúng: C
Đoạn chương trình trên bị lỗi biên dịch. Lớp `A` định nghĩa phương thức `method1` là `final`, điều này có nghĩa là phương thức này không thể bị ghi đè (override) trong các lớp con. Tuy nhiên, lớp `B` lại cố gắng ghi đè phương thức `method1` của lớp `A`. Do đó, trình biên dịch sẽ báo lỗi. Ngoài ra, biến `b` trong hàm `main` chưa được khởi tạo trước khi sử dụng `b.method1(0, 1)`, dẫn đến lỗi `NullPointerException` nếu như việc ghi đè thành công.
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
