Propriétés privées lors de l'héritage en POO en PHP
Les propriétés privées ne sont pas héritées. Mais la classe enfant peut les manipuler via les méthodes publiques du parent. Voyons cela en pratique. Supposons que nous ayons la classe parente suivante avec une propriété privée et son getter et setter :
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Supposons que la classe suivante hérite du parent :
<?php
class Student extends User {
}
?>
Créons un objet de la classe enfant :
<?php
$student = new Student;
?>
Utilisons la méthode du parent pour écrire dans sa propriété privée :
<?php
$student->setName('john');
?>
Utilisons la méthode du parent pour lire sa propriété privée :
<?php
$name = $student->getName();
echo $name;
?>
Voici la classe parente suivante :
<?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;
}
}
?>
Créez une classe Employee
qui héritera
de ce parent.
Créez un objet de la classe Employee
et appelez les setters et getters
hérités.
Dans la classe Employee, créez
la méthode suivante :
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Assurez-vous que le code de la méthode conduit à une erreur.