class Person {
public $name;
private $age; //private access
}
class Employee extends Person{
public $id;
public $salary; //class property
}
$emp = new Employee();
$emp->name="ABCD";
$emp->age = 30;
$emp->id=101;
$emp->salary=20000;
echo "<br/> Name : ".$emp->name;
echo "<br/> Age : ".$emp->age;
Trong mã này, biến lớp con $emp
có thể truy cập trực tiếp vào thành viên riêng của lớp cha Person
. Đây có phải là vi phạm quy tắc truy cập riêng tư không?Quyền truy cập riêng trong kế thừa
Nó đưa ra lỗi khi sử dụng biến lớp cha, nhưng hoạt động với biến lớp con !! Bất cứ ai có thể giải thích lý do tại sao?
Bạn sẽ thấy nó nếu bạn 'var_dump ($ emp)' ... '[ "tuổi": "Người": private] => NULL [ "tuổi"] => int (30) '... private' Person :: age' là NULL nhưng mới, public 'Employee :: age' được tạo và thiết lập là 30. – CD001
Vì lý do an toàn, tôi không bao giờ trả lại các thuộc tính một cách trực tiếp. Thay vào đó, hãy tạo một phương thức nhổ chúng ra – Thielicious