Maison > développement back-end > tutoriel php > Polymorphisme partiel PHP POO

Polymorphisme partiel PHP POO

Mary-Kate Olsen
Libérer: 2025-01-03 07:28:38
original
266 Les gens l'ont consulté

PHP OOP Part-Polymorphism

Dans cette série, je couvrirai les principes fondamentaux de la programmation orientée objet (POO) PHP. Le contenu sera organisé en parties séquentielles, chacune se concentrant sur un sujet spécifique. Si vous êtes débutant ou si vous n'êtes pas familier avec les concepts de POO, cette série est conçue pour vous guider étape par étape. Dans cette partie, je discuterai du polymorphisme en PHP. Commençons ensemble le voyage d’apprentissage de PHP OOP !

Nous allons maintenant en apprendre davantage sur le polymorphisme. Que signifie polymorphisme ? Le terme « polymorphisme » comporte deux parties. L'un est « Poly », ce qui signifie plusieurs, et l'autre est « Morphisme », qui signifie formes. Ainsi, le polymorphisme signifie plusieurs formes ou formes diverses. Dans le cadre de la programmation, lorsque le terme polymorphisme est utilisé, on peut y parvenir grâce à deux concepts.

Le premier concept est la surcharge de méthode, également connue sous le nom de polymorphisme au moment de la compilation.

La surcharge de méthodes fonctionne comme ceci : supposons que nous ayons une méthode dans une classe qui prend un paramètre. Si nous déclarons une autre méthode avec exactement le même nom mais avec plusieurs paramètres, elle est valide. Cela signifie que nous pouvons déclarer deux méthodes portant le même nom dans une classe, mais le nombre de paramètres doit être différent. Plus tard, lorsque nous créerons une instance de cette classe et utiliserons ces méthodes, la décision quant à la méthode à appeler dépendra du nombre de paramètres qui lui seront transmis. En conséquence, la même méthode se comportera ou agira différemment en fonction des paramètres. Jetons maintenant un œil à un exemple de code.

Exemple de code

class Vehicle
{
   public function getTotal($first, $second)
   {
      echo $first . " " . $second . "\n";
   }

   public function getTotal($first, $second, $third)
   {
      echo $first . " " . $second . " " . $third . "\n";
   }
}

$vehicle = new Vehicle();
$vehicle->getTotal(10, 20);
$vehicle->getTotal(10, 20, 30);
Copier après la connexion
Copier après la connexion

Ici, nous pouvons voir que deux méthodes nommées getTotal ont été déclarées dans la classe Vehicle. Ces deux méthodes prennent des paramètres différents. Désormais, lorsque nous créons une instance de la classe Vehicle et utilisons ces méthodes, leur comportement dépend des paramètres fournis. Par exemple, après avoir créé une instance de la classe Vehicle, la méthode getTotal est d'abord appelée avec 2 paramètres, ce qui entraîne l'appel de la première méthode getTotal de la classe. Ensuite, la méthode getTotal est à nouveau appelée avec 3 paramètres, provoquant l'appel de la deuxième méthode getTotal de la classe. Ainsi, nous pouvons comprendre comment une même méthode peut se comporter différemment.

Cependant, si vous exécutez ce code, cela ne fonctionnera pas car PHP ne prend pas en charge la surcharge de méthodes ni le polymorphisme à la compilation. Mais il prend en charge le remplacement de méthode ou le polymorphisme d'exécution. Nous avons uniquement utilisé cet exemple pour comprendre le concept théoriquement.

Le deuxième concept est le remplacement de méthode, également connu sous le nom de polymorphisme d'exécution.

Le remplacement de méthode fonctionne comme suit : supposons qu'il existe une méthode dans une classe qui peut ou non prendre des paramètres et effectuer une tâche spécifique. Si cette classe est héritée par une autre classe et qu'une méthode portant exactement le même nom est déclarée dans la classe enfant, ce processus est appelé remplacement de méthode ou polymorphisme d'exécution. En d’autres termes, nous pouvons déclarer une méthode portant le même nom dans la classe enfant, et le nombre de paramètres peut être identique ou différent. Il effectuera une tâche différente. Plus tard, lorsque nous créons une instance de la classe enfant et utilisons la méthode, la décision d'appeler ou non la méthode à partir de la classe parent ou enfant dépendra des paramètres transmis. En conséquence, la même méthode présentera des comportements ou des actions différents en fonction des paramètres. Jetons maintenant un œil à un exemple de code.

Exemple de code

class Vehicle
{
   public function getTotal($first, $second)
   {
      echo $first . " " . $second . "\n";
   }

   public function getTotal($first, $second, $third)
   {
      echo $first . " " . $second . " " . $third . "\n";
   }
}

$vehicle = new Vehicle();
$vehicle->getTotal(10, 20);
$vehicle->getTotal(10, 20, 30);
Copier après la connexion
Copier après la connexion

Lorsque la méthode getTotal est appelée avec deux paramètres depuis l'instance de la classe enfant, elle vérifie au moment de l'exécution si une telle méthode avec deux paramètres existe dans la classe enfant. Sinon, la classe enfant héritera et appellera la méthode de sa classe parent.

Plus tard, lorsque la méthode getTotal est à nouveau appelée avec trois paramètres, elle vérifie à nouveau si une méthode avec trois paramètres existe dans la classe enfant. Après avoir constaté que la méthode a été remplacée dans la classe enfant avec trois paramètres, elle appelle la méthode getTotal de la classe enfant.

Si les classes parent et enfant ont des méthodes avec les mêmes paramètres, la méthode remplacée dans la classe enfant sera également appelée dans ce cas.

C'est essentiellement ainsi que fonctionne la substitution de méthode. Nous comprenons maintenant comment remplacer une méthode et comment elle fonctionne.

J'espère que cette discussion vous a permis d'avoir une compréhension préliminaire des sujets abordés dans cette leçon. C'est tout pour aujourd'hui ; nous vous reverrons dans la prochaine leçon.

Vous pouvez me contacter sur GitHub et Linkedin.

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:dev.to
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