Le remplacement de méthode en PHP signifie qu'après qu'une sous-classe hérite de certaines méthodes de la classe parent, la sous-classe définit la même méthode en interne, et cette méthode nouvellement définie remplacera la méthode héritée de la classe parent, les sous-classes ne peuvent que le faire. appeler leurs méthodes définies en interne, ce qui remplace la méthode.
Réécriture de méthode :
signifie que lorsqu'une sous-classe hérite de certaines méthodes de la classe parent, la sous-classe définit la même méthode en interne, cette La méthode nouvellement définie remplacera la méthode héritée de la classe parent et la sous-classe ne pourra appeler que ses méthodes définies en interne.
(Tutoriel recommandé : Tutoriel vidéo Java)
Exigences :
1 Lorsqu'une classe parent et une classe enfant ont une méthode, des paramètres et name Complètement cohérent, la méthode de la sous-classe remplacera la méthode de la classe parent.
Les paramètres doivent être cohérents pour obtenir la couverture de la méthode. Lorsque le nombre de paramètres est incohérent, une erreur sera signalée (cela implique la surcharge des méthodes mentionnées ci-dessus). Lorsque les noms de méthodes sont incohérents, ils ne seront pas écrasés, uniquement les méthodes nouvellement définies de la sous-classe.
2. Lors de l'implémentation de la couverture de méthode, les modificateurs d'accès peuvent être différents, mais la portée d'accès de la sous-classe doit être supérieure ou égale à la portée d'accès de la classe parent.
C'est probablement la règle de conception des langages comme php. Ce que je comprends, c'est qu'il est plus facile d'accéder aux choses à un niveau supérieur. Si vous souhaitez accéder aux choses à un niveau inférieur, vous devez disposer d'autorisations plus élevées.
nécessite que les paramètres soient les mêmes que le nom. Il n'est pas obligatoire que la sous-classe porte le même nom que la classe parent.
nécessite que les paramètres et les noms soient identiques. Plus précisément, le nombre de paramètres doit être le même que celui de la classe parent, mais pas les noms des paramètres. Autrement dit, le nom des paramètres transmis peut être arbitraire, à condition que le nombre transmis soit le même.
Exemple :
<?php class shao { public function sasa($name){ echo $name,'狗!<br/>'; } } class zhen extends shao{ public function aaa() { echo '猫<br/>'; } } $lli = new zhen(); $lli->aaa(); $lli->aaa('binghh'); ?>
<?php class fu { public function text(){ echo '父类'; } public function textt(){ echo '父亲'; } } class erzi extends fu{ public function text() { parent::text();//我要父类的东西 echo '儿子';//重写 } } $shili = new fu(); $erzi = new erzi(); $erzi->text(); ?>
Recommandations associées : formation php
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!