En programmation orientée objet (POO), le mécanisme polymorphe est sans aucun doute sa caractéristique la plus distinctive. On peut même dire que la programmation sans utilisation du polymorphisme ne peut pas être appelée POO.
Essentiellement, il existe deux types de polymorphisme :
Polymorphisme au moment de la compilation (également connu sous le nom de polymorphisme statique) , Polymorphisme d'exécution (également connu sous le nom de polymorphisme dynamique) (Apprentissage recommandé : cours Java)
la surcharge est un exemple de polymorphisme au moment de la compilation utilisé lors de la compilation. déterminée au moment de l’exécution et la méthode déterminée est appelée au moment de l’exécution.
Ce que nous appelons habituellement le polymorphisme fait référence au polymorphisme d'exécution, c'est-à-dire qu'il n'est pas sûr de la méthode spécifique à appeler au moment de la compilation, et il n'est déterminé qu'au moment de l'exécution. C'est pourquoi les méthodes polymorphes sont parfois appelées méthodes différées.
Ce qui suit est une brève introduction au mécanisme du polymorphisme d'exécution (ci-après dénommé polymorphisme).
Le polymorphisme a généralement deux méthodes d'implémentation :
La sous-classe hérite de la classe parent (étend)
La classe implémente l'interface (implémente)
Quelle que soit la méthode utilisée, l'essentiel réside dans la réécriture de la méthode de la classe parent ou dans l'implémentation de la méthode d'interface pour obtenir différents effets d'exécution au moment de l'exécution.
Pour utiliser le polymorphisme, vous devez suivre une règle lors de la déclaration d'objets : déclarez toujours le type de classe parent ou le type d'interface et créez le type réel. Par exemple, en supposant que nous souhaitions créer un objet ArrayList, la déclaration doit utiliser l'instruction suivante :
List list=newArrayList();
au lieu de
ArrayList list=newArrayList();
Lors de la définition des paramètres de méthode, la classe parent doit toujours être utilisée en premier. . Type ou type d'interface, par exemple, une méthode doit être écrite comme :
publicvoid doSomething(List list);
au lieu de
publicvoid doSomething(ArrayList list);
Le plus grand avantage d'une telle déclaration est la flexibilité de la structure : Si un jour. Je pense que les fonctionnalités d'ArrayList ne peuvent pas répondre à mes besoins, j'espère utiliser LinkedList pour le remplacer, il me suffit alors de changer new ArrayList() en new LinkedList où l'objet est créé, et aucun autre code n'a besoin d'être modifié.
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!