Maison >développement back-end >tutoriel php >Héritage orienté objet PHP
Cet article présente principalement l'héritage orienté objet en PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
.Héritage
La sous-classe hérite de toutes les classes parentes - propriétés et méthodes publiques et protégées.
Utilisez le mot-clé extends
héritage, une classe en intègre une autre, et ne peut en hériter que d'une.
子类、父类、基类、超类、派生类
Sous-classe, classe dérivée——> Classe qui hérite de la classe de base
Classe parent, classe de base, super classe fait référence ; — —> Classe héritée.
<?php class Father { public $a = 'public'; protected $b = 'protected'; private $c = 'private'; public function func1() { echo 'This is public function','<br/>'; } protected function func2() { echo 'This is protected function','<br/>'; } private function func3() { echo 'This is private function','<br/>'; } } // 继承父类 class Child extends Father { // 子类中调用继承来的方法 public function test() { $this -> func1(); $this -> func2(); //$this -> func3(); 私有方法不可以调用 } } // 实例化子类 $son = new Child(); // 尝试调用属性 echo $son -> a,'<br/>'; //echo $son->b; 不能直接输出b //echo $son -> c; 继承都没继承,当然不能输出 // 尝试调用方法 //$son -> func1(); //$son -> func2(); 不能在类外调用func2 //$son -> func3(); 继承都没继承,当然不能调用 // 间接调用继承自父类的普通方法 $son -> test();
Réécrire
1) Hériter de la méthode de la classe parent et la définir dans la sous-classe Méthode avec le même nom que la classe parent , et a le même nombre de paramètres
2) Lorsque la sous-classe remplace la méthode dans la classe parent ; , PHP n'appellera pas la classe parent Méthodes remplacées dans la classe
3) L'appel de la méthode de la classe parent dépend de la sous-classe.
4) Lors de l'implémentation de la couverture de méthode, le modificateur d'accès peut être différent , mais la portée d'accès de sous-classe doit être supérieure ou égale au parent portée d'accès à la classe .
parent:: 访问父类中被重写的属性和方法
<?php class Father { public function shuo($num) { echo 'a a o o'; } } class Son extends Father { public function shuo($num) { // 调用父类中被重写的方法 // parent::shuo($num); echo 'Hello World'; } public function test($num) { parent::shuo($num); } } // 实例化子类 $son1 = new Son(); $son1 -> shuo(1); // Hello World $son1 -> test(1); // a a o o
mot-clé final
Si la méthode dans la classe parent est déclarée Si c'est final, les sous-classes ne peuvent pas remplacer cette méthode.
Si une classe est déclarée finale, elle ne peut pas être héritée.
<?php class Father { final public function test() { echo 'hello'; } } class Son extends Father { public function test() { echo '你好'; } } // 实例化子类 $son1 = new Son(); $son1 -> test(); // 报错,函数不能被重写
Recommandations associées :
Objet php -encapsulation orientée
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!