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<?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<?php
  class Student extends User {
    
  }
?>

Hãy tạo một đối tượng của lớp con:

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

Cho lớp cha sau:

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;
    }
  }
?>

Tạo lớp Employee, kế thừa từ lớp cha này.

Задание 2

Tạo đối tượng của lớp Employee và gọi các setter và getter được kế thừa.

Задание 3

Trong lớp Employee, tạo phương thức sau:

php<?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.