Question :
Considérez le code suivant pour illustrer le challenge :
<code class="php">class whale { function __construct() { // some code here } function myfunc() { // How do I call the "test" function of fish class from here?? } } class fish extends whale { function __construct() { parent::construct(); } function test() { echo "So you managed to call me !!"; } }</code>
Compte tenu des classes définies ci-dessus, comment peut-on accéder efficacement à la fonction "test" de la classe enfant ("poisson") depuis l'intérieur de la classe parent ("baleine") ?
Réponse :
Dans ce scénario, le concept de classes abstraites en PHP fournit une solution viable. Une classe abstraite exige que toutes les classes qui en héritent implémentent des fonctions ou des méthodes spécifiques.
Code révisé :
<code class="php">abstract class whale { function __construct() { // some code here } function myfunc() { $this->test(); } abstract function test(); } class fish extends whale { function __construct() { parent::__construct(); } function test() { echo "So you managed to call me !!"; } } $fish = new fish(); $fish->test(); $fish->myfunc();</code>
Explication :
En déclarant "baleine" comme classe abstraite et en incluant une méthode abstraite "test", nous imposons l'exigence pour les classes enfants d'implémenter la fonction "test". Cela permet à la fonction "myfunc" de la classe "whale" d'invoquer directement "test".
Remarque : Les classes abstraites n'autorisent pas l'instanciation d'objets ; par conséquent, ils servent uniquement de modèle aux classes enfants pour hériter et mettre en œuvre les méthodes nécessaires.
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!