Maison >développement back-end >Problème PHP >Comment implémenter un objet appelant la méthode de sa classe parent en PHP
En PHP, un objet peut appeler ses propres méthodes et méthodes héritées des classes parents. Dans certains cas, nous souhaitons appeler la méthode de sa classe parent dans une méthode d'une sous-classe. Dans ce cas, nous devons utiliser la méthode de l'objet PHP pour appeler la méthode de la classe parent.
Discutons de la façon d'implémenter la méthode d'un objet pour appeler sa classe parent en PHP.
1. Appelez les méthodes de la classe parent via le mot-clé parent
En PHP, il existe un mot-clé parent
qui peut être utilisé pour appeler des méthodes dans la classe parent. En utilisant le formulaire parent::method()
dans la méthode de la sous-classe, vous pouvez appeler la méthode du même nom dans la classe parent. parent
可以用于调用父类中的方法。通过在子类方法中使用 parent::method()
的形式,就可以调用父类中的同名方法。
例如,我们有以下的父类和子类:
class Animal { public function eat() { echo 'Animal is eating...'; } } class Cat extends Animal { public function eat() { parent::eat(); echo 'Cat is eating...'; } }
在上面的代码中,Animal
类有一个 eat()
方法,而 Cat
类继承了 Animal
类并覆盖了 eat()
方法。在 Cat
类的 eat()
方法中,通过 parent::eat()
调用了父类的 eat()
方法。
调用 Cat
类的 eat()
方法,则会输出 Animal is eating...Cat is eating...
。
二、使用 $this->parent
调用父类方法
除了使用 parent
关键字,在 PHP 5.3 以上版本中,也可以通过 $this->parent
的形式来调用父类方法。
例如,我们可以将上面的 Cat
类改为以下形式:
class Cat extends Animal { public function eat() { $this->parent::eat(); echo 'Cat is eating...'; } }
这里我们使用了 $this->parent
调用了父类 eat()
方法,并输出了 Cat is eating...
。
三、总结
通过使用 parent
关键字或 $this->parent
,我们可以轻松地实现 PHP 中对象调用其父类的方法。
需要注意的是,当父类方法中存在可变参数时,例如:
class Animal { public function eat($food1, $food2) { echo "Animal is eating $food1 and $food2"; } } class Cat extends Animal { public function eat($food1, $food2) { //error, 不可使用parent::eat($food1, $food2) } }
在子类中,是不允许使用 parent::eat($food1, $food2)
class Cat extends Animal { public function eat($food1, $food2) { parent::eat($food1, $food2); echo "Cat is eating $food1 and $food2"; } }Dans le code ci-dessus, la classe
Animal
a une méthode eat()
, et La classe Cat
hérite de la classe Animal
et remplace la méthode eat()
. Dans la méthode eat()
de la classe Cat
, le eat()parent::eat()
Méthode /code>. 🎜🎜Appeler la méthode eat()
de la classe Cat
affichera L'animal mange...Le chat mange...
. 🎜🎜2. Utilisez $this->parent
pour appeler la méthode de la classe parent 🎜🎜En plus d'utiliser le mot-clé parent
, en PHP 5.3 ou supérieur, vous pouvez également utilisez $this->parent
pour appeler la méthode de classe parent. 🎜🎜Par exemple, nous pouvons changer la classe Cat
ci-dessus sous la forme suivante : 🎜rrreee🎜Ici, nous utilisons $this->parent
pour appeler la classe parent méthode eat()
et sortie Le chat mange...
. 🎜🎜3. Résumé🎜🎜En utilisant le mot-clé parent
ou $this->parent
, nous pouvons facilement implémenter la méthode d'un objet en PHP appelant sa classe parent. 🎜🎜Il est à noter que lorsqu'il y a des paramètres variables dans la méthode de la classe parent, par exemple : 🎜rrreee🎜Dans la sous-classe, il n'est pas permis d'utiliser parent::eat($food1, $food2) code> pour appeler la méthode de la classe parent. Étant donné que les paramètres variables de la classe parent peuvent affecter le comportement de la sous-classe, PHP n'autorise pas cette méthode. Les paramètres doivent être redéfinis dans la méthode de la sous-classe. Par exemple : 🎜rrreee🎜Voici comment un objet en PHP appelle la classe parent. method Une brève introduction à la méthode, j'espère qu'elle aidera les lecteurs à comprendre comment les objets PHP appellent les méthodes de la classe parent. 🎜
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!