Privātās īpašības mantojumā OOP PHP
Privātās īpašības nemanto. Bet pēctecis var manipulēt ar tām caur vecāka publiskajām metodēm. Apskatīsim to praksē. Pieņemsim, ka mums ir šāda vecāku klase ar privātu īpašību un tās getter un setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Pieņemsim, ka no vecāka manto šāds pēctecis:
<?php
class Student extends User {
}
?>
Izveidosim pēcteča objektu:
<?php
$student = new Student;
?>
Izmantosim vecāka metodi, lai ierakstītu tā privāto īpašību:
<?php
$student->setName('john');
?>
Izmantosim vecāka metodi, lai nolasītu tā privāto īpašību:
<?php
$name = $student->getName();
echo $name;
?>
Dota šāda vecāku klase:
<?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;
}
}
?>
Izveidojiet klasi Employee,
kura manto
no šī vecāka.
Izveidojiet klases Employee
objektu un izsauciet mantotās
setter un getter metodes.
Klasē Employee izveidojiet
šādu metodi:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Pārliecinieties, ka metodes kods novedīs pie kļūdas.