En PHP, vous rencontrerez une situation dans laquelle la sous-classe hérite de la classe parent, mais vous devez apporter certaines modifications aux attributs et méthodes extension, alors la sous-classe peut réécrire les attributs et les méthodes, couvrant les attributs et les méthodes portant le même nom que la classe parent. Cependant, si la méthode de la classe parent contient beaucoup de contenu, comme des centaines ou des milliers de lignes. code, alors utilisez uniquement "parent class name::method" ou "parent::method" pour appeler la méthode remplacée dans la classe parent, il suffit de recharger la classe parent , puis d'ajouter les instructions qui doivent être développées.
<?php class Person{ public $name; public function construct($name="" ){ $this->name=$name; } public function say(){ echo "我叫".$this->name ; } }?><?php class Student extends Person{ public $name; public function construct($name=""){ $this->name =$name; }//这里定义了一个和父类中同名的方法,将父类中的说话方法覆盖并重写 public function say(){ echo "我叫".$this->name .",今年25岁了" ; } }?>
constructeur , un paramètre supplémentaire $age est ajouté.
<?phpclass Student extends Person{ public $name; public $age; public function construct($name="",$age=25){ $this->name =$name; $this->age =$age; } public function say(){ echo "我叫".$this->name .",今年".$this->age."岁了" ; } }?>
Cependant, bien que cela résolve le problème que nous avons mentionné ci-dessus, dans le développement réel, une méthode ne peut pas être juste un code ou plusieurs codes, comme la méthode "say()" dans la classe "Person". Il y a 100 lignes de Si nous voulons écraser cette méthode et conserver les fonctions d'origine et ajouter un peu plus de fonctionnalités, nous devons réécrire les 100 lignes de code d'origine, plus quelques lignes de code développées. C'est toujours correct, mais dans certains cas. Dans certains cas, la méthode de la classe parent ne peut pas voir le code original. Comment réécrire le code original à ce moment-là ? Nous avons également une solution, c'est-à-dire que dans la méthode de sous-classe, vous pouvez appeler la méthode surchargée dans la classe parent. Autrement dit, vous pouvez prendre les fonctions originales de la méthode surchargée et ajouter certaines de vos propres fonctions. . Implémentez la méthode d'appel de la méthode surchargée de la classe parent dans la méthode de la sous-classe :
L'un est Utiliser la méthode "parent::" pour appeler la méthode remplacée dans la classe parent
<?phpclass Student extends Person{ public $name; public $age; public function construct($name="",$age=25){ parent::construct($name,$age); $this->age =$age; } public function say(){ parent::say(); echo ",今年".$this->age."岁了" ; } }?>
rechargement des attributs et des méthodes de la classe parent. Ce n'est pas une surcharge au vrai sens du terme. .On ne peut dire qu'il s'agit d'une paire de sous-classes.La classe parent a été étendue.En PHP, le mot surcharge existe également, mais la signification de surcharge est différente de celle des langages généraux.
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!