Maison > développement back-end > tutoriel php > L'héritage de la syntaxe orientée objet PHP 3 s'étend

L'héritage de la syntaxe orientée objet PHP 3 s'étend

黄舟
Libérer: 2023-03-04 11:52:02
original
1305 Les gens l'ont consulté

Héritage : Si un objet A utilise des membres d'un autre objet B, alors on dit que l'objet A hérite de l'objet B !
astuce : Le concept d'héritage se reflète dans les objets, et la syntaxe se reflète dans les classes class B extends A { } !

<?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;);
Copier après la connexion

Le sens de la syntaxe est la réutilisation du code dans une syntaxe orientée objet !
instanceof, s'il s'agit d'une instance d'un certain type. (Instanceof a le même concept que -*/ et est un opérateur)

<?php 
class AmParent{
    }
class AmChild extends AmParent{
    }
$amChild=new  AmChild;
var_dump( $amChild instanceof AmChild);
var_dump( $amChild instanceof AmParent);
Copier après la connexion

Résultat de l'opération :
bool(true)
bool(true )


Réécrire, remplacer. C'est un phénomène, seul l'héritage se produira (profiter ou éviter cette situation)
Si la sous-classe et la classe parent ont des membres (propriétés, méthodes) du même nom, lors de l'instanciation de l'objet sous-classe, vous n'obtiendrez que les informations dans la sous-classe Membres définis, appelez cela un remplacement !
Astuce :
La réécriture ne remplace pas !
Il existe deux prix différents. Nous obtenons les propriétés ou méthodes actuellement vues via l'objet de classe Book, ce qui est similaire au processus de recherche ascendante de l'emplacement le plus proche.

<?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;);
Copier après la connexion

Résultat de l'exécution :

156,47 RMB

parent, classe parent
Une fois réécrit, le code de la classe parent ne sera plus exécuté !
La méthode portant le même nom de la classe parent et de la sous-classe sera remplacée, donc certaines méthodes seront définitivement réécrites, comme la méthode de construction !

<?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);
Copier après la connexion

Résultat de l'opération :

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

Le constructeur de la classe parent n'est qu'une méthode normale du point de vue de la sous-classe.

Ce qui précède est le contenu de l'extension d'héritage de la syntaxe orientée objet PHP 3. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
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