JavaScript is required

Đ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 () {}

}

A.

A.Lớp Employee không thể kế thừa

B.

B.Phương thức display không thể override

C.

C.Quyền truy cập của Manager.display() nhỏ hơn quyền truy cập của Employee.display()

D.

D.Không có đáp án đúng

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.

Câu hỏi liên quan