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