JavaScript is required

Đoạn mã sau có lỗi biên dịch nào?
class Student {
public String name;
}
public class Man extends Student {
private String name;
}

A.
Có lỗi biên dịch:name has private access in Man.
B.
Không có lỗi biên dịch.
C.
Có lỗi biên dịch:for name access modifier in Man for name is weaker in Student.
D.
Có lỗi biên dịch:name has public access in Student.
Trả lời:

Đáp án đúng: B


Đoạn mã không có lỗi biên dịch nào. Trong lớp `Student`, biến `name` được khai báo là `public`, có nghĩa là nó có thể được truy cập từ bất kỳ đâu. Trong lớp `Man`, biến `name` được khai báo là `private`, có nghĩa là nó chỉ có thể được truy cập từ bên trong lớp `Man`. Việc lớp con (`Man`) khai báo một biến cùng tên với lớp cha (`Student`) không gây ra lỗi, vì hai biến này nằm ở hai phạm vi khác nhau. Lớp `Man` có thể truy cập biến `name` của lớp `Student` thông qua kế thừa.

Câu hỏi liên quan