Propriedades privadas na herança em POO em PHP
Propriedades privadas não são herdadas. Mas a classe filha pode manipulá-las através dos métodos públicos da classe pai. Vamos ver na prática. Suponha que temos a seguinte classe pai com uma propriedade privada e seus getter e setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Suponha que a seguinte classe filha herda da classe pai:
<?php
class Student extends User {
}
?>
Vamos criar um objeto da classe filha:
<?php
$student = new Student;
?>
Vamos usar o método da classe pai para definir sua propriedade privada:
<?php
$student->setName('john');
?>
Vamos usar o método da classe pai para ler sua propriedade privada:
<?php
$name = $student->getName();
echo $name;
?>
Dada a seguinte classe pai:
<?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;
}
}
?>
Faça a classe Employee,
que irá herdar
deste pai.
Crie um objeto da classe Employee
e chame os setters e getters
herdados.
Na classe Employee, faça
o seguinte método:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Certifique-se de que o código do método levará a um erro.