คุณสมบัติส่วนตัวในการสืบทอดใน OOP ใน PHP
คุณสมบัติส่วนตัวไม่ถูกรับสืบทอด แต่คลาสลูกสามารถจัดการกับมันได้ ผ่านเมธอดสาธารณะของคลาสพ่อแม่ มาลองดูในทางปฏิบัติกัน สมมติว่าเรามีคลาสพ่อแม่ดังต่อไปนี้ พร้อมกับคุณสมบัติส่วนตัวและ getter และ setter ของมัน:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
สมมติว่าคลาสลูกต่อไปนี้สืบทอด จากคลาสพ่อแม่:
<?php
class Student extends User {
}
?>
สร้างอ็อบเจ็กต์ของคลาสลูก:
<?php
$student = new Student;
?>
ใช้เมธอดของคลาสพ่อแม่ เพื่อเขียนค่าลงในคุณสมบัติส่วนตัว ของมัน:
<?php
$student->setName('john');
?>
ใช้เมธอดของคลาสพ่อแม่ เพื่ออ่านคุณสมบัติส่วนตัว ของมัน:
<?php
$name = $student->getName();
echo $name;
?>
มีคลาสพ่อแม่ดังต่อไปนี้:
<?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;
}
}
?>
สร้างคลาส Employee
ที่จะสืบทอด
จากคลาสพ่อแม่นี้
สร้างอ็อบเจ็กต์ของคลาส Employee
และเรียก setter และ getter
ที่รับสืบทอดมา
ในคลาส Employee ให้สร้าง
เมธอดดังต่อไปนี้:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
ตรวจสอบให้แน่ใจว่าโค้ดเมธอดจะทำให้ เกิดข้อผิดพลาด