Maison >développement back-end >tutoriel php >Le fils hérite de l'entreprise de son père, php hérite des biens privés
Définition : 有限继承
signifie que lorsque 子类
hérite des membres de 父类
, il n'hérite pas de tout le contenu, mais hérite et utilise une partie du contenu de la classe parent. L'idée répandue est que lorsque l'ancien PDG de l'entreprise quitte ses fonctions, il envisage de confier certaines tâches de l'entreprise au PDG actuel. Les documents de transfert et le contenu du travail peuvent être enregistrés par écrit et examinés à tout moment, mais pour certaines informations sur le travail. , ce sont S'il n'y a aucun moyen de passer le relais, il s'agit de l'héritage limité du PDG actuel du PDG précédent.
1. Contenu de l'héritage : En PHP, l'héritage signifie que la sous-classe hérite de tous les 公有成员
, 受保护成员
et 私有属性
de la classe parent, et ne peut pas hériter des méthodes privées. de la classe mère.
<?php class A{ public $name='张三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); $this->getAge();//父类私有方法无法继承 } } $a=new B(); var_dump($a); /*object(B)#1 (3) { ["name"]=> string(6) "张三" ["sex":protected]=> string(3) "man" ["age":"A":private]=> string(2) "25" } */ ?>
2.Héritage protégé protégé
La génération du mot-clé protected
lui-même est purement pour l'héritage, indiquant que les sous-classes sont autorisées. signifie qu'il est accessible au sein de la sous-classe et qu'il n'est pas autorisé à y accéder directement de l'extérieur.
<?php class A{ public $name='张三'; protected $sex='man'; private $age='25'; public function getName(){ echo $this->name."<br>"; } protected function getSex(){ echo $this->sex."<br>"; } private function getAge(){ echo $this->age."<br>"; } } class B extends A{ public function getA(){ $this->getName(); $this->getSex(); } } $a=new B(); var_dump($a); echo "<br>"; //$a->getSex(); //: Call to protected method A::getSex() from context 不能在外部访问 ?>
Astuce : accédez aux membres privés de la classe parent : si la sous-classe souhaite accéder aux membres privés de la classe parent, le principe est que la classe parent fournit des méthodes publiques ou protégées auxquelles la sous-classe peut accéder ( généralement déconseillé, sinon définir Le sens de privé a disparu).
3. Les membres statiques (constantes de classe)
suivent également les règles d'héritage (l'héritage PHP est essentiellement un objet), mais la méthode d'accès se fait par classe.
<?php class Fu{ const NAME = '人'; public static $count = 0; protected static $type = array('黑','黄','白'); public static function getCount(){ echo self::NAME; echo self::$count; } protected static function getType(){ print_r(self::$type); } } class Zi extends Fu{ //依然需要子类中访问受保护成员 public static function getFu(){ Fu::getType(); } } echo Zi::$count; //允许直接访问 Zi::getCount(); //访问父类静态方法 Zi::getFu(); //利用子类公有方法访问父类受保护成员 ?>
4.构造方法
et 析构方法
peuvent également être hérités par les sous-classes. À ce stade, vous devez faire attention aux paramètres 父类构造方法
correspondants lors de l'instanciation des objets de sous-classe.
<?php //父类 class Fu{ private $money; public function __construct($money){ $this->money = $money; } public function __destruct(){ echo 'die'; } } //子类继承 class Zi extends Fu{} //子类实例化:自身是空类,没有指定构造方法 //$m = new Zi(); //错误:缺少参数,因为会自动调用父类构造方法 $m = new Zi(100); //正确 ?>
Recommandé : tutoriel 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!