Maison  >  Article  >  développement back-end  >  La différence entre surcharge et remplacement en PHP

La différence entre surcharge et remplacement en PHP

墨辰丷
墨辰丷original
2018-05-25 14:57:221370parcourir

Cet article présente principalement la différence entre surcharge et override en PHP. Il a une très bonne valeur de référence, jetons-y un œil avec l'éditeur ci-dessous

override (réécriture, override)

Nom de la méthode, paramètres, retour. valeur même.

2. Les méthodes de sous-classe ne peuvent pas réduire les droits d'accès des méthodes de classe parent.

3. Les méthodes de sous-classe ne peuvent pas lever plus d'exceptions que les méthodes de classe parent (mais les méthodes de sous-classe n'ont pas besoin de lever d'exceptions).

4. Existe entre la classe parent et la sous-classe.

5. Les méthodes sont définies comme finales et ne peuvent pas être remplacées.

surcharge (surcharge, surcharge)

1. Au moins un type, un numéro et un ordre de paramètre sont différents.

2. Les noms de méthodes qui ont uniquement des valeurs de retour différentes ne peuvent pas être surchargés.

3. Existe dans les classes parentes, les sous-classes et les classes similaires.

Le remplacement et la surcharge des méthodes sont différentes manifestations du polymorphisme Java.

La substitution est une manifestation de polymorphisme entre une classe parent et une sous-classe, tandis que la surcharge est une manifestation de polymorphisme dans une classe.

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. Lorsqu'un objet d'une sous-classe utilise cette méthode, la définition de la sous-classe sera appelée. Pour cela, la définition de la classe parent sera "blindée".

Si plusieurs définitions portant le même nom sont définies dans. une classe Les méthodes qui peuvent avoir différents nombres de paramètres, différents types de paramètres ou différents ordres de paramètres sont appelées surcharge de méthodes. Il ne peut pas être surchargé via les autorisations d'accès, les types de retour et les exceptions levées

1. Remplacer les caractéristiques

1 L'indicateur de la méthode remplacée doit être et être remplacé. L'effet de remplacement ne peut être obtenu que si les indicateurs de la méthode correspondent complètement ;

2. La valeur de retour de la méthode remplacée doit être cohérente avec la valeur de retour de la méthode remplacée

3. . La valeur levée par la méthode surchargée L'exception levée doit être cohérente avec l'exception levée par la méthode surchargée, ou sa sous-classe

4 La méthode surchargée ne peut pas être privée, sinon elle définira simplement une nouvelle méthode ; dans sa sous-classe, et il n'est pas couvert.

2. Fonctionnalités de surcharge

1. Lorsque vous utilisez la surcharge, vous ne pouvez utiliser que différents styles de paramètres. Par exemple, différents types de paramètres, un nombre différent de paramètres, un ordre différent des paramètres (bien sûr, plusieurs types de paramètres dans la même méthode doivent être différents, par exemple, cela peut être fun(int, float), mais cela ne peut pas être fun(int , int ));

2. La surcharge ne peut pas être effectuée par les autorisations d'accès, les types de retour et les exceptions levées

3. Le type d'exception et le nombre de méthodes n'affecteront pas la surcharge ; >

4. Pour l'héritage, si une méthode a un accès privilégié dans la classe parent, elle ne peut pas être surchargée dans la sous-classe. Si elle est définie, elle définira uniquement une nouvelle méthode. Elle n'obtiendra pas l'effet de surcharge.

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 :

Présentation des différences et des liens entre la priorité et la surcharge

PHP orienté objet - Introduction détaillée à la simulation de surcharge de méthodes dans les langages généraux orientés objet (surcharge)

Objets orientés PHP - Exemple code détaillant la surcharge (surchargeing)

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!

Déclaration:
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