Comment appeler des fonctions de classe enfant à partir de la classe parent en PHP à l'aide de classes abstraites ?

Patricia Arquette
Libérer: 2024-10-19 08:25:02
original
957 Les gens l'ont consulté

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

Appel de fonctions de classe enfant depuis une classe parent

En PHP, il est possible d'appeler une fonction depuis une classe enfant au sein d'une classe parent, mais cela nécessite une planification minutieuse.

Considérez l'exemple de code suivant :

<code class="php">class whale { ... }
class fish extends whale { ... }</code>
Copier après la connexion

Dans cet exemple, nous avons une classe baleine et une classe poisson qui en hérite. Le but est d'appeler la fonction test() de la classe fish au sein de la fonction myfunc() de la classe baleine.

Solution : utiliser des classes abstraites

Pour y parvenir cela, nous pouvons exploiter les classes abstraites. Une classe abstraite impose l'implémentation de certaines méthodes dans ses classes enfants.

<code class="php">abstract class whale {
  function __construct() { ... }
  function myfunc() { $this->test(); }
  abstract function test();
}</code>
Copier après la connexion

Dans la classe baleine mise à jour, nous déclarons maintenant myfunc() et test() comme méthodes abstraites. myfunc() appellera test(), qui doit être implémenté dans la classe enfant.

<code class="php">class fish extends whale {
  function __construct() { parent::__construct(); }
  function test() { echo "So you managed to call me !!"; }
}</code>
Copier après la connexion

Dans la classe fish, nous fournissons une implémentation pour test(). Cela garantit que les exigences abstraites de la classe parent sont remplies.

Avec cette configuration, nous pouvons maintenant appeler la fonction test() depuis fish dans myfunc() de la classe baleine.

<code class="php">$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!</code>
Copier après la connexion

En utilisant des classes abstraites, nous appliquons un héritage approprié et veillons à ce que les classes enfants implémentent les méthodes requises. Cela nous permet d'appeler de manière transparente les fonctions de classe enfant à partir des classes parent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal