When I rewrite a method, in PHP, can I use a variable to receive the method?
I made the example below and it worked normally, but I do not know if this is correct or if it is the best way to rewrite a parent class method.
abstract class Animal{
...
public function dadosAnimal(){
$dados = " Nome: ". $this->nome;
$dados .= "Idade: ". $this->idade;
return $dados;
}
class Cachorro extends Animal(){
...
public function dadosAnimal(){
//Posso fazer ou vai contra algum principio ou patter ?
$dados = parent:: dadosAnimal();
$dados .= " Cor do pelo: ". $this->corPelo;
return $dados;
}
What I want is not to have to repeat the same parent class code in the child classes and also have the benefit of changing something just in the parent class and the change is reflected for all child classes that use the parent class.
Avoid this:
public function dadosAnimal(){
parent::dadosAnimal();
//Copiar o método inteiro da classe-pai
$dados = "<br/> Nome: ". $this->nome;
$dados .= "<br/> Idade: ". $this->idade;
//reescrever, adicionando isso
$dados .= "<br/> Cor do pêlo: ". $this->corPelo;
return $dados;