Propiedades privadas en la herencia de POO en PHP
Las propiedades privadas no se heredan. Pero la clase hija puede manipularlas a través de los métodos públicos del padre. Veámoslo en la práctica. Supongamos que tenemos la siguiente clase padre con una propiedad privada y su getter y setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Supongamos que de la clase padre hereda la siguiente clase hija:
<?php
class Student extends User {
}
?>
Creemos un objeto de la clase hija:
<?php
$student = new Student;
?>
Utilicemos el método del padre para escribir su propiedad privada:
<?php
$student->setName('john');
?>
Utilicemos el método del padre para leer su propiedad privada:
<?php
$name = $student->getName();
echo $name;
?>
Tenemos la siguiente clase padre:
<?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;
}
}
?>
Crea la clase Employee,
que herede de este padre.
Crea un objeto de la clase Employee
y llama a los setters y getters
heredados.
En la clase Employee haz
el siguiente método:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Comprueba que el código del método lleva a un error.