Maison  >  Article  >  développement back-end  >  Comment obtenir l’héritage de classe PHP ? (Partage du résumé)

Comment obtenir l’héritage de classe PHP ? (Partage du résumé)

WBOY
WBOYoriginal
2021-10-25 11:43:143386parcourir

Dans l'article précédent, je vous ai présenté "Vous amène à distinguer les constructeurs et les destructeurs dans les classes", qui vous a expliqué en détail comment utiliser les constructeurs et les destructeurs dans les classes PHP Function, dans cet article nous continuerons à examiner. les connaissances liées à l'héritage des classes PHP, j'espère que cela sera utile à tout le monde !

Comment obtenir l’héritage de classe PHP ? (Partage du résumé)

Dans le monde orienté objet de PHP, nous pouvons hériter d'une classe existante via une classe. La classe héritée est appelée classe parent ou classe de base, et la classe qui hérite de la classe parent est appelée sous-classe. En fait, une sous-classe peut être comprise comme une extension de la classe parent, et la sous-classe peut ajouter de nouvelles fonctions au-delà de la classe parent. Les sous-classes peuvent également hériter du constructeur de la classe parent. Lorsque la sous-classe est instanciée, PHP appellera d'abord le constructeur de la sous-classe. Lorsque la sous-classe n'existe pas, il appellera le constructeur de la classe parent.

<strong><span style="font-size: 20px;">étend</span></strong> Mot-clé d'héritage<strong><span style="font-size: 20px;">extends</span></strong>继承关键字

在PHP中,我们通过extends关键字来实现类的继承。它的语法格式如下:

class 子类名 extends 父类名{
    ... ...
}

其中我们需要注意的是,一个类只能从另一个类中继承,但是一个类可以继承多个类。也就是一个子类只能有一个父类,但是一个父类可以有多个子类。

继承 public 成员

在PHP中,父类所有使用public修饰的成员都是可以被子类继承的。

接下来我们通过示例来看一下,示例如下:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        public function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
    }
    $object = new son1();
    $object -> demo();
    $object2 = new son2();
    $object2 -> demo();
?>

输出结果:

Comment obtenir l’héritage de classe PHP ? (Partage du résumé)

在上述示例中,定义一个基类,使用另一类来继承这个基类,同时在尝试使用子类调用基类中的成员方法。结果父类所有使用public修饰的成员都是可以被子类继承的。

继承 protected 成员

上述中我们讲到了继承public修饰的成员,都可以被子类继承,还有一种protected成员,被它修饰的成员,就是属于不想被类的外部访问的,可以理解为通过修饰这个成员是一个保护成员,只能在类的内部被访问,同时也可以在子类的内部被访问,我们可以在子类设置一个成员函数来访问这个成员。

示例如下:

<?php
    class father{
        public $name, $url, $title;
        public function __construct(){
            echo &#39;基类中的构造函数<br>&#39;;
        }
        protected function demo(){
            echo &#39;基类中的成员方法<br>&#39;;
        }
    }
    class son1 extends father{
    }
    class son2 extends father{
        public function __construct(){
            echo &#39;子类中的构造函数<br>&#39;;
        }
        public function test(){
            $this -> demo();
        }
    }
    $object = new son1();
    // $object -> demo();      // 在子类中调用父类使用 protected 修饰的成员方法会报错
    $object2 = new son2();
    $object2 -> test();
?>

输出结果:

Comment obtenir l’héritage de classe PHP ? (Partage du résumé)

由上述示例我们能够看出,通过protected修饰的变量,也可以在继承后的子类内部被访问。

继承<strong><span style="font-size: 20px;">private</span></strong> 成员

在PHP类中,通过private
En PHP, nous implémentons l'héritage de classe via le mot-clé extends. Son format de syntaxe est le suivant :

<?php
    class father{
        private function demo(){
            echo &#39;基类中private的成员方法<br>&#39;;
        }
    }
    class son  extends father{
        public function test(){
            $this -> demo();
        }
    }
    $object = new son();
    $object -> test();
?>

Ce qu'il faut noter, c'est qu'une classe ne peut hériter que d'une autre classe, mais une classe peut hériter de plusieurs classes. Autrement dit, une sous-classe ne peut avoir qu’une seule classe parent, mais une classe parent peut avoir plusieurs sous-classes.

Hériter des membres publics

En PHP, toutes les classes parentes utilisent des membres modifié par public peut être hérité par les sous-classes.

Jetons ensuite un coup d'œil à un exemple. L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜Comment obtenir l’héritage de classe PHP ? (Partage du résumé)🎜🎜Dans l'exemple ci-dessus, définissez une classe de base, utilisez une autre classe pour hériter de cette classe de base et essayez en même temps d'utiliser la sous-classe pour appeler la méthode membre de la classe de base. Par conséquent, tous les membres modifiés publiquement de la classe parent peuvent être hérités par la sous-classe. 🎜🎜Hériter les membres protégés🎜🎜Dans ce qui précède, nous avons parlé de l'héritage des membres publics peuvent être hérités par les sous-classes. Il existe également un membre <code>protected Les membres modifiés par celui-ci sont ceux qui ne souhaitent pas être accessibles depuis l'extérieur de la classe. qu'en modifiant ce membre, il s'agit d'un membre protégé accessible uniquement à l'intérieur de la classe et également accessible à l'intérieur de la sous-classe. Nous pouvons définir une fonction membre dans la sous-classe pour accéder à ce membre. 🎜🎜🎜L'exemple est le suivant : 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜Comment obtenir l’héritage de classe PHP ? (Partage du résumé)🎜🎜À partir de l'exemple ci-dessus, nous pouvons voir que les variables modifiées par protected sont également accessibles au sein des sous-classes héritées. 🎜🎜🎜Hériter<strong><span style="font-size: 20px;">privé span></span></strong> span> Membres🎜🎜Dans les cours PHP, via privéLes membres modifiés ne sont pas accessibles en dehors de la classe, ni par les sous-classes. On peut comprendre qu'il s'agit d'une modification privée qui devient un membre privé de la classe. Pour être précis, les membres modifiés par private ne sont pas hérités par les sous-classes et ne sont pas accessibles aux sous-classes. 🎜🎜🎜L'exemple est le suivant : 🎜rrreee🎜Le résultat de sortie est erroné. Lors de l'appel d'un membre modifié avec le mot-clé privé dans la classe parent de la sous-classe, le programme signalera une erreur et terminera l'opération. 🎜🎜Si vous êtes intéressé, vous pouvez cliquer sur "🎜Tutoriel vidéo PHP🎜" pour en savoir plus sur les connaissances 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!

Déclaration:
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