Private egenskaber ved arv i OOP i PHP
Private egenskaber arves ikke. Men efterkommer kan manipulere dem gennem forælderens offentlige metoder. Lad os se på det i praksis. Lad os sige, at vi har følgende forælderklasse med en privat egenskab og dens getter og setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Lad os sige, at følgende efterkommer arver fra forælderen:
<?php
class Student extends User {
}
?>
Lad os oprette et objekt af efterkommeren:
<?php
$student = new Student;
?>
Lad os bruge forælderens metode for at skrive til dens private egenskab:
<?php
$student->setName('john');
?>
Lad os bruge forælderens metode for at læse dens private egenskab:
<?php
$name = $student->getName();
echo $name;
?>
Følgende forælderklasse er givet:
<?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;
}
}
?>
Lav klassen Employee,
som skal arve fra
denne forælder.
Opret et objekt af klassen Employee
og kald de arvede
setters og getters.
I klassen Employee skal du lave
følgende metode:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Vær sikker på, at koden i metoden vil føre til en fejl.