Private egenskaper ved arv i OOP i PHP
Private egenskaper arves ikke. Men etterkommeren kan manipulere dem gjennom forelderens offentlige metoder. La oss se på dette i praksis. La oss si at vi har følgende forelderklasse med en privat egenskap og dens getter og setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
La oss si at følgende etterkommer arver fra forelderen:
<?php
class Student extends User {
}
?>
La oss opprette et objekt av etterkommeren:
<?php
$student = new Student;
?>
La oss bruke forelderens metode for å skrive til dens private egenskap:
<?php
$student->setName('john');
?>
La oss bruke forelderens metode for å lese dens private egenskap:
<?php
$name = $student->getName();
echo $name;
?>
Her er følgende forelderklasse:
<?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;
}
}
?>
Lag klassen Employee
som skal arve fra
denne forelderen.
Opprett et objekt av klassen Employee
og kall de arvede
setterne og getterne.
I klassen Employee, lag
følgende metode:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Forsikre deg om at koden i metoden fører til en feil.