Thuộc tính riêng tư trong kế thừa OOP PHP
Thuộc tính riêng tư không được kế thừa. Tuy nhiên, lớp con có thể thao tác với chúng thông qua các phương thức công khai của lớp cha. Hãy cùng xem xét trong thực tế. Giả sử chúng ta có lớp cha sau với một thuộc tính riêng tư cùng getter và setter của nó:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Giả sử lớp sau kế thừa từ lớp cha:
<?php
class Student extends User {
}
?>
Hãy tạo một đối tượng của lớp con:
<?php
$student = new Student;
?>
Sử dụng phương thức của lớp cha để ghi giá trị vào thuộc tính riêng tư của nó:
<?php
$student->setName('john');
?>
Sử dụng phương thức của lớp cha để đọc thuộc tính riêng tư của nó:
<?php
$name = $student->getName();
echo $name;
?>
Cho lớp cha sau:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Tạo lớp Employee,
kế thừa từ lớp cha này.
Tạo đối tượng của lớp Employee
và gọi các setter và getter được kế thừa.
Trong lớp Employee, tạo
phương thức sau:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Hãy đảm bảo rằng mã của phương thức sẽ dẫn đến lỗi.