Maison > Article > développement back-end > Explication détaillée de la surcharge et de la réécriture en PHP orienté objet
Cet article présente principalement la surcharge et la réécriture dans les objets PHP orientés objet. Il a une très bonne valeur de référence. Jetons un coup d'œil avec l'éditeur
La substitution est une manifestation du polymorphisme entre les classes parentes et les sous-classes. La surcharge est une expression du sexe. Une méthode surchargée peut modifier le type de valeur de retour. En d’autres termes, les types de valeurs de retour des surcharges peuvent être identiques ou différents.
Surcharge
a. La surcharge de méthodes est un moyen pour une classe de traiter différents types de données de manière unifiée. Plusieurs fonctions portant le même nom existent en même temps, avec un nombre/type de paramètres différent. La surcharge est une manifestation du polymorphisme dans une classe.
b. La surcharge des méthodes Java signifie que vous pouvez créer plusieurs méthodes dans une classe. Elles ont le même nom mais des paramètres et des définitions différents. Lorsque vous appelez des méthodes, vous décidez quelle méthode utiliser en fonction du nombre et du type de paramètres qui leur sont transmis. Il s'agit du polymorphisme.
c.En cas de surcharge, le nom de la méthode doit être le même, mais le type et le numéro du paramètre sont différents, et le type de valeur de retour peut être identique ou différent. Le type de retour ne peut pas être utilisé comme critère pour distinguer les fonctions surchargées.
2. Remplacement de
a. Polymorphisme entre classe parent et sous-classe, redéfinir les fonctions de la classe parent. Si une méthode définie dans une sous-classe a le même nom et les mêmes paramètres que sa classe parent, on dit que la méthode est prioritaire. En Java, les sous-classes peuvent hériter des méthodes de leur classe parent sans avoir à réécrire les mêmes méthodes. Mais parfois, la sous-classe ne souhaite pas hériter des méthodes de la classe parent inchangées, mais souhaite apporter certaines modifications, ce qui nécessite une réécriture des méthodes. Le remplacement de méthode est également appelé remplacement de méthode.
b. Si une méthode de la sous-classe a le même nom de méthode, le même type de retour et la même liste de paramètres qu'une méthode de la classe parent, la nouvelle méthode écrasera la méthode d'origine. **Si vous avez besoin de la méthode originale dans la classe parent, vous pouvez utiliser le mot-clé super, qui fait référence à la classe parent de la classe actuelle**.
c. Les droits de modification d'accès aux fonctions de la sous-classe ne peuvent pas être inférieurs à ceux de la classe parent
Si le nom, le type de retour, le type de paramètre et le numéro de la méthode membre de la classe parent sont exactement le même, seul son code interne est différent. En Java, cette méthode de réécriture est appelée refactoring de méthode membre
Dans la sous-classe, vous pouvez réajuster les autorisations dans la méthode de la classe parent (de avare à généreuse) , étendez ou réajustez les autorisations de la classe parent Functions, etc., rendant ainsi souvent la sous-catégorie verte en bleu, mais meilleure que le bleu. Au cours du processus de développement, les développeurs de programmes doivent faire bon usage de ces fonctionnalités des sous-classes. Mais d’un autre point de vue, il est également nécessaire d’imposer certaines restrictions sur les autorisations des sous-classes. Si nécessaire, les autorisations doivent être contrôlées sur certaines méthodes de la classe parent pour éviter qu'elles ne soient utilisées de manière abusive par les sous-classes.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Recommandations associées :
simulation javascriptsurcharge, réponses détaillées à la réécriture de la méthode toString
Réécriture de méthodes JS et surcharge techniques explication détaillée
Fonction PHP surcharge Analyse et exemples
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!