Le fils hérite de l'entreprise de son père, php hérite des biens privés

autoload
Libérer: 2023-04-09 19:12:01
original
2782 Les gens l'ont consulté

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=&#39;张三&#39;;
        protected $sex=&#39;man&#39;;
        private  $age=&#39;25&#39;;

        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" }
  */
?>
Copier après la connexion

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=&#39;张三&#39;;
        protected $sex=&#39;man&#39;;
        private  $age=&#39;25&#39;;

        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  不能在外部访问
  
?>
Copier après la connexion

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 = &#39;人&#39;;
    public static $count = 0;
    protected static $type = array(&#39;黑&#39;,&#39;黄&#39;,&#39;白&#39;);
    
    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();	//利用子类公有方法访问父类受保护成员
?>
Copier après la connexion

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 &#39;die&#39;;
    }
}

//子类继承
class Zi extends Fu{}

//子类实例化:自身是空类,没有指定构造方法
//$m = new Zi();					//错误:缺少参数,因为会自动调用父类构造方法
$m = new Zi(100);					//正确
?>
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!