Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Verwendung der objektorientierten Klassenvererbung in PHP

Einführung in die Verwendung der objektorientierten Klassenvererbung in PHP

黄舟
黄舟Original
2017-07-02 11:25:541035Durchsuche

Vererbung von PHP-Klassen ist ein wichtiger Wissenspunkt beim Erlernen der PHP-Sprache. Wie lernen wir also die PHP-Klassenvererbung richtig? Bei der objektorientierten PHP-Programmierung ist die Klassenvererbung immer am kritischsten.

Das ist genau so, als ob Menschen Kinder haben (warum müssen wir Kinder haben? Ist es nur, um dem Alter vorzubeugen! Ich weiß es nicht), man entfernt einige seiner eigenen Gene und die Gene seiner Frau. Einige werden sich zu einem neuen Individuum regenerieren. Diese neue Persönlichkeit wird definitiv die Eigenschaften von Ihnen beiden enthalten. Dies ist eine Erklärung der Vererbung (Vererbung) in der Biologie. In der Welt der Programmierung ist Vererbung gleich Vererbung!

Nachdem ich einige lebendige Prinzipien der Vererbung verstanden habe, möchte ich zunächst sehen, ob die Vererbung von PHP-Klassen nicht mehr so ​​mysteriös ist. Vielleicht ist es überhaupt nicht mysteriös, weil wir selbst zu kompliziert sind. Um eine Vererbung zu erhalten, muss es eine „Wurzel“ geben. Sie können sich vorstellen, dass, wenn Sie in der Zukunft einen Sohn oder eine Tochter zur Welt bringen, diese einige „Dinge“ (Eigenschaften und Methoden) erhalten )“ von Ihnen, sodass Sie Die „Nachkommen“ sind diejenigen, die alle Ihre (Wurzel-)Eigenschaften besitzen. Lassen Sie uns beschreiben, wie dies in der objektorientierten Sprache von PHP durch Grammatik ausgedrückt wird (es kann nicht so direkt sein wie bei Menschen, heiraten Sie, und Ihr Nachwuchs wird nach einer Weile erzeugt)

1. Generieren Sie „Wurzeln“ Klasse (Elternklasse oder Basisklasse)

Syntax:

class father{
}

1. „Nachkommen“ (Unterklassen) generieren

Syntax:

class son extends father{
}

Hinweis: Die übergeordnete Klasse ist nur eine gewöhnliche Klasse. Wenn Sie Nachkommen haben möchten, müssen Sie nur das Schlüsselwort „extends“ nach der gewöhnlichen Klasse hinzufügen. Auf diese Weise verfügt Ihre Unterklasse nur über alle Attribute und Methoden der übergeordneten Klasse. Eigentlich ist es so einfach.

Lassen Sie uns etwas Praktisches tun. Schließlich geht es bei der Definition einer übergeordneten Klasse und einer Unterklasse in der PHP-Klassenvererbung um die Erledigung einer bestimmten Aufgabe! Die Aufgabe hier ist relativ eintönig. Nehmen Sie die Menschen als Beispiel. Menschen haben Namen (Eigenschaften) und sie müssen schlafen und essen (Methoden). Lassen Sie uns diese grundlegende Aufgabe verwenden, um das Wissen in diesem Abschnitt zu vervollständigen.

<?php   
class father{   
protected $name;   
function construct($name){   
$this->name=$name;   
}   
function destruct(){   
echo "<p>{$this->name}也是要死的<br/></p>";   
}   
//这个就是所谓的构造函数,用来初始化   
function go_to_sleeping(){   
echo "<p>{$this->name}想睡觉.</p>";   
}   
function eat(){   
echo "<p>{$this->name}想吃饭.</p>";   
}   
}   
class son extends father{   
function playing(){   
//小孩子会很调皮的,当然他也是要吃要睡的生物   
echo "<p>{$this->name}正在捣蛋...</p>";   
}   
}   
$your_father=new father("老爸");   
$your_father->go_to_sleeping();   
$your_father->eat();   
$my_son=new son(&#39;宝贝&#39;);   
$my_son->go_to_sleeping();   
$my_son->eat();   
$my_son->playing();   
?>   
<?php  
class father{  
protected $name;  
function construct($name){  
$this->name=$name;  
}  
function destruct(){  
echo "<p>{$this->name}也是要死的<br/></p>";  
}  
//这个就是所谓的构造函数,用来初始化  
function go_to_sleeping(){  
echo "<p>{$this->name}想睡觉.</p>";  
}  
function eat(){  
echo "<p>{$this->name}想吃饭.</p>";  
}  
}  
class son extends father{  
function playing(){  
//小孩子会很调皮的,当然他也是要吃要睡的生物  
echo "<p>{$this->name}正在捣蛋...</p>";  
}  
}  
$your_father=new father("老爸");  
$your_father->go_to_sleeping();  
$your_father->eat();  
$my_son=new son(&#39;宝贝&#39;);  
$my_son->go_to_sleeping();  
$my_son->eat();  
$my_son->playing();  
?>

Analyse: In unserem ersten Beispiel für die Verwendung der Vererbung verwenden wir den im PHP-Konstruktor erwähnten Konstruktor und die Schlüsselwörter in der PHP-Klassenkapselung. Wenn Sie nichts verstehen, schauen Sie es sich an! Mehr möchte ich nicht sagen. Ich wollte mittags nicht schlafen.

Im Vater der Klasse definieren wir allgemeine Merkmale, wie den Namen der Person, was die Person essen und schlafen muss, und dann definieren wir in ihrer Unterklasse (Nachkomme) eine personalisierte Methode (Spielen), Schließlich gibt es Unterschiede zwischen den Menschen. Wir verwenden den Konstruktor, um den Namen zu initialisieren, und natürlich verwenden wir auch den Destruktor , um das Objekt zu „zerstören“, aber Sie haben möglicherweise nicht entdeckt, dass es in Unterklassen keinen Konstruktor und Destruktor gibt Die Unterklasse erbt alle Methoden des übergeordneten Elements, wie könnte man sonst $my_son->go_to_sleeping(); aufrufen? Dies ist die Vererbung der PHP-Klasse.

<?php
class my_class{
var $username="小鸡";
var $num=10;
function yingxiaoji(){
   //使用类里的全局变量
$num=$this->num;
$username=$this->username;
echo "我养了".$num."条".$username; 
} 
function jiegou(){
   //使用类中的函数时,用this直接引用
   $this->yingxiaoji();
   echo "全都卖了";
}
}
//php类的承 extends表示继承,但是php不允许同时继承多个基类
class my_class_extend extends my_class{
var $color="红色";
function mycolor(){
   $color=$this->color;
   $username=$this->username;
   echo ",这只".$username."是".$color;
}
}
$myname=new my_class(); //类的实例化
$myname->yingxiaoji();
echo "<br>";
//针对类中的变量重新赋值
$myname->username="小鸭子";
$myname->num="20";
$myname->yingxiaoji();
echo "<br>";
$myname->jiegou();
echo "<br>";
//初始化一个类的继承类
$myname_extend=new my_class_extend();
$myname_extend->jiegou();
$myname_extend->mycolor();
echo "<br>";
//由于是继承类,那么它的基类的属性全都有了,就可以直接给基类的变量传值
$myname_extend->username="小鸭子";
$myname_extend->num=100;
$myname_extend->color="黑色";
$myname_extend->jiegou();
$myname_extend->mycolor();
?>

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung der objektorientierten Klassenvererbung in PHP. 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