PHPのOOPにおける継承時のプライベートプロパティ
プライベートプロパティは継承されません。 しかし、子クラスは親クラスの公開メソッドを通じて それらを操作することができます。 実際に見てみましょう。 プライベートプロパティとそのゲッター・セッターを持つ 次の親クラスがあるとします:
<?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 クラスのオブジェクトを作成し、
継承したセッターとゲッターを呼び出してください。
Employee クラスに次のメソッドを作成してください:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
このメソッドのコードがエラーを引き起こすことを確認してください。