JavaScript is required

A variable that is declared protected:

A.

Is visible only in the subclasses (and not in the class it is declared in)

B.

Is visible only in the class it is declared in

C.

Is visible to all classes, but modifiable only in the class where it is declared

D.

Is visible in the class it is declared in, and all of its sub-classes

Trả lời:

Đáp án đúng: D


Trong lập trình hướng đối tượng, một biến (hay thuộc tính) được khai báo là `protected` có ý nghĩa như sau: * **Có thể truy cập từ bên trong lớp mà nó được khai báo:** Lớp chứa biến `protected` có quyền truy cập và sử dụng biến này một cách bình thường. * **Có thể truy cập từ các lớp con (subclass):** Các lớp con kế thừa từ lớp cha chứa biến `protected` cũng có quyền truy cập biến này. Điều này cho phép các lớp con có thể thao tác trực tiếp với các thuộc tính của lớp cha mà không cần thông qua các phương thức getter/setter. * **Không thể truy cập từ bên ngoài lớp và các lớp con:** Các lớp khác, không phải lớp cha hoặc lớp con, không thể truy cập trực tiếp vào biến `protected`. Như vậy, đáp án D là chính xác nhất, vì nó bao hàm cả việc biến `protected` có thể truy cập từ lớp khai báo và từ các lớp con của nó. Các phương án khác không đúng vì: * **A:** Sai. Biến `protected` vẫn có thể truy cập được trong lớp mà nó được khai báo. * **B:** Sai. Biến `protected` còn có thể truy cập được từ các lớp con. * **C:** Sai. Biến `protected` không thể truy cập từ tất cả các lớp.

Câu hỏi liên quan