PHP OOP에서 상속 시 프라이빗 속성

프라이빗 속성은 상속되지 않습니다. 하지만 자식 클래스는 부모 클래스의 공개 메서드를 통해 해당 속성을 조작할 수 있습니다. 실제 예를 통해 살펴보겠습니다. 다음과 같이 프라이빗 속성과 그에 대한 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;
  }
?>

해당 메서드의 코드가 오류를 발생시킨다는 점을 확인하세요.