[Resolvido] Sobre parent:: e this->
E aí beleza?
Fui me aventurar como professor e uma pessoa me perguntou sobre a diferença em usar parent:: e this-> em um contexto de herança como a do exemplo abaixo:
class Pai {
protected $atributoDoPai;
protected function metodoDoPai(){
return $this->atributoDoPai;
}
}
class Filho extends Pai {
public function metodoDoFilho( $valor ) {
$this->atributoDoPai = $valor;
return parent::metodoDopai();
}
}
Claro que as classes que ele havia me mostrado eram funcionais e não essas sem utilidade...
Então fui indagado com a seguinte pergunta:
Onde tem parent:: eu posso utilizar o this-> e vai acontecer a mesma coisa. Então porque tem essas duas formas de acessar o conteúdo da super classe?
Eu respondi sem muita certeza isso:
Acredito que o certo é usar parent::, pois você esta usando um recurso que pertence a classe e não a instância; apesar de você poder acessar o recurso. E essa é a única ocasião que você trata um método/atributo não estático como se fosse estático ( por causa do :: ).
Fiquei inseguro com a resposta. Falei merd@?
Discussão (14)
Carregando comentários...