Yksityiset ominaisuudet perinnässä OOP:ssa PHP:ssä
Yksityisiä ominaisuuksia ei periydy. Mutta lapsiluokka voi manipuloida niillä vanhemman julkisten metodien kautta. Katsotaanpa käytännössä. Oletetaan, että meillä on seuraava vanhempiluokka yksityisellä ominaisuudella ja sen getterillä ja setterillä:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Oletetaan, että vanhemmasta perii seuraava lapsiluokka:
<?php
class Student extends User {
}
?>
Luodaan lapsiluokan olio:
<?php
$student = new Student;
?>
Hyödynnetään vanhemman metodia kirjoittaaksesi sen yksityisen ominaisuuden:
<?php
$student->setName('john');
?>
Hyödynnetään vanhemman metodia lukeaksemme sen yksityisen ominaisuuden:
<?php
$name = $student->getName();
echo $name;
?>
Annettu on seuraava vanhempiluokka:
<?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;
}
}
?>
Tee luokka Employee,
joka perii
tästä vanhemmasta.
Luo luokan Employee olio
ja kutsu perittyjä
settereitä ja gettereitä.
Tee luokassa Employee
seuraava metodi:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Varmista, että metodin koodi johtaa virheeseen.