Privata egenskaper vid arv i OOP i PHP
Privata egenskaper ärvs inte. Men ett barn kan manipulera dem genom förälderns publika metoder. Låt oss se hur det fungerar i praktiken. Anta att vi har följande förälderklass med en privat egenskap och dess getter och setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Anta att följande barnklass ärver från föräldern:
<?php
class Student extends User {
}
?>
Låt oss skapa ett objekt av barnklassen:
<?php
$student = new Student;
?>
Låt oss använda förälderns metod för att skriva till dess privata egenskap:
<?php
$student->setName('john');
?>
Låt oss använda förälderns metod för att läsa dess privata egenskap:
<?php
$name = $student->getName();
echo $name;
?>
Följande förälderklass ges:
<?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;
}
}
?>
Skapa klassen Employee
som ska ärva
från denna förälder.
Skapa ett objekt av klassen Employee
och använd de ärvda
setters och getters.
Gör följande metod i klassen Employee:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Se till att koden i metoden leder till ett fel.