Heim >Backend-Entwicklung >PHP-Tutorial >Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)

Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)

WBOY
WBOYOriginal
2021-10-25 11:43:143430Durchsuche

Im vorherigen Artikel habe ich Ihnen „Erklären Sie, wie man Konstruktoren und Destruktoren in Klassen unterscheidet“ vorgestellt, in dem Sie detailliert erfahren haben, wie Sie Konstruktoren und Destruktoren in PHP-Klassen verwenden. In diesem Artikel werden wir uns weiter damit befassen Ich hoffe, dass das Wissen über die Vererbung von PHP-Klassen für alle hilfreich ist!

Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)

In der objektorientierten Welt von PHP können wir eine vorhandene Klasse über eine Klasse erben. Die geerbte Klasse wird als übergeordnete Klasse oder Basisklasse bezeichnet, und die Klasse, die die übergeordnete Klasse erbt, wird als Unterklasse bezeichnet. Tatsächlich kann eine Unterklasse als Erweiterung der übergeordneten Klasse verstanden werden, und die Unterklasse kann über die übergeordnete Klasse hinaus neue Funktionen hinzufügen. Unterklassen können auch den Konstruktor der übergeordneten Klasse erben. Wenn die Unterklasse instanziiert wird, ruft PHP zunächst den Konstruktor in der Unterklasse auf.

<strong><span style="font-size: 20px;">erweitert</span></strong> Schlüsselwort „Vererbung“<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();
?>

输出结果:

Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)

在上述示例中,定义一个基类,使用另一类来继承这个基类,同时在尝试使用子类调用基类中的成员方法。结果父类所有使用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();
?>

输出结果:

Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)

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

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

在PHP类中,通过private
In PHP implementieren wir die Klassenvererbung über das Schlüsselwort extends. Das Syntaxformat lautet wie folgt:

<?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();
?>

Was wir beachten müssen, ist, dass eine Klasse nur von einer anderen Klasse erben kann, eine Klasse jedoch mehrere Klassen erben kann. Das heißt, eine Unterklasse kann nur eine übergeordnete Klasse haben, eine übergeordnete Klasse kann jedoch mehrere Unterklassen haben.

public-Mitglieder erben

In PHP verwenden alle übergeordneten Klassen -Mitglieder Geändert durch public kann von Unterklassen geerbt werden.

Als nächstes schauen wir uns ein Beispiel an: 🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜Wie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen)🎜🎜Definieren Sie im obigen Beispiel eine Basisklasse, verwenden Sie eine andere Klasse, um diese Basisklasse zu erben, und versuchen Sie gleichzeitig, sie zu verwenden die Unterklasse, um die Mitgliedsmethoden der Basisklasse aufzurufen. Infolgedessen können alle öffentlich geänderten Mitglieder der übergeordneten Klasse von der Unterklasse geerbt werden. 🎜🎜protected-Mitglieder erben🎜🎜Oben haben wir über die Vererbung von public🎜🎜Aus dem obigen Beispiel können wir sehen, dass auf durch protected geänderte Variablen auch innerhalb geerbter Unterklassen zugegriffen werden kann. 🎜🎜🎜<strong><span style="font-size: 20px;">Erben</span></strong><code><strong><span style="font-size: 20px;">privat span></span></strong> span> Mitglieder🎜🎜In PHP-Klassen bis privateAuf geänderte Mitglieder kann weder außerhalb der Klasse noch von Unterklassen zugegriffen werden. Es versteht sich, dass es sich um eine private Änderung handelt, die zu einem privaten Mitglied der Klasse wird. Um genau zu sein, werden von privat geänderte Mitglieder nicht von Unterklassen geerbt und Unterklassen können nicht darauf zugreifen. 🎜🎜🎜Das Beispiel lautet wie folgt: 🎜rrreee🎜Das Ausgabeergebnis ist falsch. Wenn ein mit dem Schlüsselwort private geändertes Mitglied in der übergeordneten Klasse in der Unterklasse aufgerufen wird, meldet das Programm einen Fehler und bricht den Vorgang ab. 🎜🎜Bei Interesse können Sie auf „🎜PHP-Video-Tutorial🎜“ klicken, um mehr über PHP-Kenntnisse zu erfahren. 🎜

Das obige ist der detaillierte Inhalt vonWie erhalte ich eine PHP-Klassenvererbung? (Zusammenfassung teilen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn