Maison  >  Article  >  développement back-end  >  Comment appeler le constructeur de la classe parent en php ?

Comment appeler le constructeur de la classe parent en php ?

coldplay.xixi
coldplay.xixioriginal
2020-07-14 11:11:304047parcourir

php appelle le constructeur de la classe parent : utilisez parent pour appeler le constructeur de la classe parent, utilisez [::] pour référencer une classe, le code est [parent::__construct($title,$firstName,$mainName, prix $) 】.

Comment appeler le constructeur de la classe parent en php ?

php appelle le constructeur de classe parent :

Utilisez parent pour appeler le constructeur de classe parent

Pour faire référence à une méthode d'une classe plutôt qu'à un objet, utilisez :: (deux deux-points) au lieu de ->.

Donc, parent::__construct() sert à appeler la méthode __construct() de la classe parent.

Le code spécifique est le suivant :

<?php
header(&#39;Content-type:text/html;charset=utf-8&#39;);
// 从这篇开始,类名首字母一律大写,规范写法
class ShopProduct{    // 声明类
public $title; // 声明属性
public $producerMainName;
public $producerFirstName;
public $price;
function __construct($title,$firstName,$mainName,$price){
$this -> title = $title;    // 给属性 title 赋传进来的值
$this -> producerFirstName= $firstName; 
$this -> producerMainName = $mainName; 
$this -> price= $price; 
}
function getProducer(){    // 声明方法
return "{$this -> producerFirstName }"."{$this -> producerMainName}";
}
function getSummaryLine(){
$base = "{$this->title}( {$this->producerMainName},";
$base .= "{$this->producerFirstName} )";
return $base;
}
}
class CdProduct extends ShopProduct {
public $playLenth;
function __construct($title,$firstName,$mainName,$price,$playLenth){
parent::__construct($title,$firstName,$mainName,$price);
$this -> playLenth= $playLenth;
}
function getPlayLength(){
return $this -> playLength;
}
function getSummaryLine(){
$base = "{$this->title}( {$this->producerMainName},";
$base .= "{$this->producerFirstName} )";
$base .= ":playing time - {$this->playLength} )";
return $base;
}
}
// 定义类
class BookProduct extends ShopProduct {
public $numPages;
function __construct($title,$firstName,$mainName,$price,$numPages){
parent::__construct($title,$firstName,$mainName,$price);
$this -> numPages= $numPages;
}
function getNumberOfPages(){
return $this -> numPages;
}
function getSummaryLine(){
$base = "{$this->title}( {$this->producerMainName},";
$base .= "{$this->producerFirstName} )";
$base .= ":page cont - {$this->numPages} )";
return $base;
}
}
 
?>

Chaque sous-classe appellera le constructeur de la classe parent avant de définir ses propres propriétés. La classe de base (classe parent) ne connaît désormais que ses propres données, et nous devrions essayer d'éviter de communiquer à la classe parent des informations sur la sous-classe. Il s'agit d'une règle empirique. Pensez-y si les informations d'une certaine sous-classe doivent être ". confidentiel", par conséquent, la classe parent connaît ses informations et d'autres sous-classes peuvent en hériter, de sorte que les informations de la sous-classe ne restent pas confidentielles.

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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

Articles Liés

Voir plus