>백엔드 개발 >PHP 문제 >PHP에서 상위 클래스 생성자를 호출하는 방법은 무엇입니까?

PHP에서 상위 클래스 생성자를 호출하는 방법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-14 11:11:304093검색

php는 상위 클래스 생성자를 호출합니다. 상위 클래스의 생성자를 호출하려면 parent를 사용하고, 클래스를 참조하려면 [::]를 사용하고, 코드는 [parent::__construct($title,$firstName,$mainName,$price)]입니다. .

PHP에서 상위 클래스 생성자를 호출하는 방법은 무엇입니까?

php는 상위 클래스 생성자 메소드를 호출합니다.

parent를 사용하여 상위 클래스 생성자 메소드를 호출합니다. parent调用父类的构造方法

要引用一个类而不是对象的方法,可以使用 ::(两个冒号),而不是 ->

所以, parent::__construct() 为着调用父类的 __construct()

객체 메소드 대신 클래스를 참조하려면 를 사용할 수 있습니다. code>: :(콜론 2개), ->가 아닙니다.

그래서 parent::__construct() 는 상위 클래스의 __construct() 메서드를 호출하는 것입니다.

구체적인 코드는 다음과 같습니다:
<?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;
}
}
 
?>

각 하위 클래스는 자체 속성을 설정하기 전에 상위 클래스의 생성자를 호출합니다. 이제 기본 클래스(상위 클래스)는 자신의 데이터만 알고 있으므로 하위 클래스에 대한 정보를 상위 클래스에 알리지 않도록 해야 합니다. 이는 경험상 특정 하위 클래스의 정보가 " "confidential" 이므로 부모 클래스는 자신의 정보를 알고 있으며 다른 서브클래스는 이를 상속받을 수 있으므로 서브클래스의 정보는 기밀로 유지되지 않습니다.

관련 학습 권장 사항:
초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 PHP에서 상위 클래스 생성자를 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

관련 기사

더보기