Đoạn chương trình dưới đây báo lỗi là do?
class Employee{
protected void display() {}
}
class Manager extends Employee {
void display () {}
}
Trả lời:
Đáp án đúng: D
Đoạn code báo lỗi vì trong Java, khi override một phương thức, quyền truy cập của phương thức override (ở lớp con) không được phép hẹp hơn quyền truy cập của phương thức được override (ở lớp cha). Trong trường hợp này, phương thức `display()` trong lớp `Employee` có quyền truy cập `protected`, trong khi phương thức `display()` trong lớp `Manager` có quyền truy cập mặc định (package-private), hẹp hơn `protected`. Do đó, trình biên dịch sẽ báo lỗi.