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.'人民币'; } } $book1=new Books; $book1->sayName('php开发'); $book1->sayPrice('156.47');
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);
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.'没有货币单位'; } } class Books extends Goods{ public function sayPrice($price){ $this->price=$price; echo $this->price.'人民币'; } } //$good=new Goods; //$good->sayPrice('96.47'); echo '<hr/>'; $book1=new Books; $book1->sayPrice('156.47');
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 = 'ITCAST';//名字 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('phpphpphp',88.8,'new','Bejjing publisher'); var_dump($book1);
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) }
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) !