Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Abaixo tenho duas classes, Pai e Filho, a classe Filho herda uma das funções da classe pai, mas na classe filho existe uma função com o mesmo nome existente na classe Pai, observe:
class Pai{
public function comunicacao(){
return 'Tenho a capacidade de comunicação.';
}
}
class Filho extends Pai{
public function comunicacao(){
return 'não sei me comunicar corretamente ainda.';
}
}
Se eu instanciar a classe filho e chamar a função comunicação o que acontece? Eu recebo a mensagem "não sei me comunicar corretamente ainda.".
Vamos supor que eu queira instanciar a classe filho, mas pegar a mensagem herdada da classe pai, como faço isso?
Para que isso seja possivel eu deveria transformar a função comunicacao existente na classe Pai em uma função ESTATICA e chama-la dessa forma dentro da função comunicacao existente dentro da classe filho: return parent::comunicacao();
Mas como não estou usando funções estaticas, como faço isso?
> Para que isso seja possivel eu deveria transformar a função comunicacao existente na classe Pai em uma função **ESTATICA **e chama-la dessa forma dentro da função comunicacao existente dentro da classe filho: **return parent::comunicacao(); **
***parent***, se refere no seu exemplo o nome da classe pai, e não atributo de uma função::estática. No caso do return abaixo, você esta aplicando um poliformismo no proprio corpo da função filha.
return parent::comunicacao();
http://php.net/manual/pt_BR/keyword.parent.phpAlguns links relevantes:
Sei que é Java, mas ta bem didático:
http://www.devmedia.com.br/orientacao-a-objetos-parte-ll/5124
Você não o faz. No seu caso, quando você utiliza o objeto filho, você está utilizando os seus métodos.
Em teoria, sobrescrita de métodos não podem alterar o comportamento original (substituição de liskov e inversão de dependência). Sobreescrita deve "extender" uma funcionalidade, ou seja, adicionar algo que é pertinente a uma classe especializada mas não era para a classe genérica.
O ponto principal é que seu exemplo não é lá muito adequado, pois não há uso real no seu caso. Pois uma vez que são pessoas, um pai não pode ser filho ao mesmo tempo (ao menos não na mesma idade).