คุณสมบัติส่วนตัวในการสืบทอดใน OOP ใน PHP

คุณสมบัติส่วนตัวไม่ถูกรับสืบทอด แต่คลาสลูกสามารถจัดการกับมันได้ ผ่านเมธอดสาธารณะของคลาสพ่อแม่ มาลองดูในทางปฏิบัติกัน สมมติว่าเรามีคลาสพ่อแม่ดังต่อไปนี้ พร้อมกับคุณสมบัติส่วนตัวและ getter และ setter ของมัน:

php<?php
  class User {
    private $name;
    
    public function setName($name) {
      $this->name = $name;
    }
    public function getName() {
      return $this->name;
    }
  }
?>

สมมติว่าคลาสลูกต่อไปนี้สืบทอด จากคลาสพ่อแม่:

php<?php
  class Student extends User {
    
  }
?>

สร้างอ็อบเจ็กต์ของคลาสลูก:

php<?php
  $student = new Student;
?>

ใช้เมธอดของคลาสพ่อแม่ เพื่อเขียนค่าลงในคุณสมบัติส่วนตัว ของมัน:

php<?php
  $student->setName('john');
?>

ใช้เมธอดของคลาสพ่อแม่ เพื่ออ่านคุณสมบัติส่วนตัว ของมัน:

php<?php
  $name = $student->getName();
  echo $name;
?>
Задание 1

มีคลาสพ่อแม่ดังต่อไปนี้:

php<?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 ที่จะสืบทอด จากคลาสพ่อแม่นี้

Задание 2

สร้างอ็อบเจ็กต์ของคลาส Employee และเรียก setter และ getter ที่รับสืบทอดมา

Задание 3

ในคลาส Employee ให้สร้าง เมธอดดังต่อไปนี้:

php<?php
  public function getFull() {
    return $this->name . ' ' . $this->surn;
  }
?>

ตรวจสอบให้แน่ใจว่าโค้ดเมธอดจะทำให้ เกิดข้อผิดพลาด