Heim  >  Artikel  >  Backend-Entwicklung  >  Die objektorientierte Vererbung der PHP-Syntax 3 wird erweitert

Die objektorientierte Vererbung der PHP-Syntax 3 wird erweitert

黄舟
黄舟Original
2016-12-28 10:07:591286Durchsuche

Vererbung: Wenn ein Objekt A Mitglieder eines anderen Objekts B verwendet, dann sagen wir, dass das A-Objekt das B-Objekt erbt!
Tipp: Das Konzept der Vererbung spiegelt sich in Objekten wider, und die Syntax spiegelt sich in den Klassen Klasse B Extens A { } wider!

<?php 
class Goods{
        public $goodsName;
    public $price;
    public function sayName($goodsName){
        $this->goodsName=$goodsName;
        echo $this->goodsName;
    }
    }
class Books extends Goods{
public function sayPrice($price){
    $this->price=$price;
    echo $this->price.&#39;人民币&#39;;
    }
}
$book1=new  Books;
$book1->sayName(&#39;php开发&#39;);
$book1->sayPrice(&#39;156.47&#39;);

Die Bedeutung von Syntax ist die Wiederverwendung von Code in der objektorientierten Syntax!
instanceof, ob es sich um eine Instanz eines bestimmten Typs handelt (Instanceof hat das gleiche Konzept wie +-*/ und ist ein Operator)

<?php 
class AmParent{
    }
class AmChild extends AmParent{
    }
$amChild=new  AmChild;
var_dump( $amChild instanceof AmChild);
var_dump( $amChild instanceof AmParent);

Operationsergebnis:
bool(true)
bool( true)


Umschreiben, überschreiben. Dies ist ein Phänomen, es findet nur eine Vererbung statt (verwenden oder vermeiden Sie diese Situation).
Wenn die Unterklasse und die übergeordnete Klasse Mitglieder (Eigenschaften, Methoden) mit demselben Namen haben, erhalten Sie beim Instanziieren des Unterklassenobjekts nur die Unterklasse Definierte Mitglieder, nennen Sie es eine Überschreibung!
Tipp:
Umschreiben ersetzt nicht!
Es gibt zwei verschiedene Say-Preise. Wir erhalten die aktuell angezeigten Eigenschaften oder Methoden über das Book-Klassenobjekt, was dem Prozess der Suche nach oben nach dem nächstgelegenen Standort ähnelt.

<?php 
class Goods{
    public $goodsName;
    public $price;
    public function sayPrice($price){
    $this->price=$price;
    echo $this->price.&#39;没有货币单位&#39;;
    }
    }
class Books extends Goods{
public function sayPrice($price){
    $this->price=$price;
    echo $this->price.&#39;人民币&#39;;
    }
}
//$good=new Goods;
//$good->sayPrice(&#39;96.47&#39;);
echo &#39;<hr/>&#39;;
$book1=new  Books;
$book1->sayPrice(&#39;156.47&#39;);

Laufergebnis:

156,47 RMB

übergeordnet, übergeordnete Klasse
Nach dem Umschreiben wird der Code der übergeordneten Klasse nicht mehr ausgeführt!
Methoden mit demselben Namen wie die übergeordnete Klasse und die untergeordneten Klassen werden überschrieben, sodass einige Methoden definitiv überschrieben werden, z. B. Konstruktoren!

<?php 
class Goods {
    public $goods_name = &#39;ITCAST&#39;;//名字
    public $goods_price;//商品价格
    public function __construct($name, $price) {
        $this->goods_name = $name;
        $this->goods_price = $price;
    }
}
class Book extends Goods {
    public $author;//作者
    public $publisher;//出版社
    public function __construct($name, $price,$author,$publisher) 
    {
        parent:: __construct($name, $price);
        $this->author = $author;
        $this->publisher = $publisher;
    }
}
    $book1=new Book(&#39;phpphpphp&#39;,88.8,&#39;new&#39;,&#39;Bejjing publisher&#39;);
    var_dump($book1);

Operationsergebnis:

object(Book)#1 (4) { 
[“author”]=> 
string(3) “new” 
[“publisher”]=> 
string(17) “Bejjing publisher” 
[“goods_name”]=> 
string(9) “phpphpphp” 
[“goods_price”]=> 
float(88.8) 
}

Der Konstruktor der übergeordneten Klasse ist aus Sicht der Unterklasse nur eine normale Methode.

Das Obige ist der Inhalt der objektorientierten PHP-Syntax-3-Vererbung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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