"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como chamar funções de classe filha da classe pai em PHP usando classes abstratas?

Como chamar funções de classe filha da classe pai em PHP usando classes abstratas?

Publicado em 01/11/2024
Navegar:760

How to Call Child Class Functions from Parent Class in PHP Using Abstract Classes?

Chamando funções de classe filha da classe pai

Em PHP, é possível chamar uma função de uma classe filha dentro de uma classe pai, mas requer um planejamento cuidadoso.

Considere o seguinte exemplo de código:

class whale { ... }
class fish extends whale { ... }

Neste exemplo, temos uma classe baleia e uma classe peixe que herda dela. O objetivo é chamar a função test() da classe fish dentro da função myfunc() da classe baleia.

Solução: use classes abstratas

Para alcançar isso, podemos aproveitar classes abstratas. Uma classe abstrata impõe a implementação de certos métodos em suas classes filhas.

abstract class whale {
  function __construct() { ... }
  function myfunc() { $this->test(); }
  abstract function test();
}

Na classe baleia atualizada, agora declaramos myfunc() e test() como métodos abstratos. myfunc() chamará test(), que precisa ser implementado na classe filha.

class fish extends whale {
  function __construct() { parent::__construct(); }
  function test() { echo "So you managed to call me !!"; }
}

Na classe fish, fornecemos uma implementação para test(). Isso garante que os requisitos abstratos da classe pai sejam atendidos.

Com esta configuração, agora podemos chamar a função test() de fish dentro de myfunc() da classe baleia.

$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!

Ao usar classes abstratas, aplicamos a herança adequada e garantimos que as classes filhas implementem os métodos necessários. Isso nos permite chamar funções de classe filha de classes pai perfeitamente.

Declaração de lançamento Este artigo foi reimpresso em: 1729297456 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3