php不呼叫父類構造 PHP 繼承學習筆記

2021-10-12 21:13:54 字數 2860 閱讀 6915

繼承是物件導向的乙個重要概念,通過使用繼承可以重用已有類的屬性和方法。被繼承的類叫做父類,獲得繼承權的類稱為子類。

1.繼承乙個類

例:extends.php

class fruit{ //建立乙個fruit類

public function __construct(){ //公有 建構函式

class banana extends fruit{//建立乙個banana類 繼承父類fruit

public function __construct(){//公有 建構函式

echo 'this is banana.

';//列印this is banana.

class orange extends fruit{//建立乙個orange類 繼承父類fruit

public function __construct(){//公有 建構函式

echo 'this is orange.

';//列印this is orange.

$banana = new banana();

$orange = new orange();

結果:

php的建構函式也是可以被繼承的,我們給 fruit類新增乙個建構函式。

例:extends2.php

class fruit{//建立乙個fruit類

public function __construct(){//公有 建構函式

echo 'this is fruit.

';//列印this is fruit.

class banana extends fruit{//建立乙個banana類 繼承父類fruit

class orange extends fruit{//建立乙個orange類 繼承父類fruit

$banana = new banana();//例項化

$orange = new orange();//例項化

結果:

注:php中乙個類只能繼承乙個父類,我們稱為單繼承。

2.public、protected、private在繼承類中的作用

例:extends_access.php

class fruit{//建立fruit類

protected $color; //保護可以被繼承 成員變數 $color

private $shape = 'unknow'; //私有無法繼承 成員變數 $shape

public function __construct(){ //公有 建構函式

echo 'this is fruit.

'; //列印this is fruit.

public function __construct(){ //公有 建構函式

$this->color = 'red'; //繼承父類成員變數 color

echo $this->shape; //無法繼承 報錯 變數未定義

class banana extends fruit{//建立banana類 繼承父類fruit

public function __construct(){//公有 建構函式

$this->color = 'yelow';//繼承父類成員變數 color

echo 'this is banana.

';//列印this is banana.

class orange extends fruit{//建立orange 類 繼承父類fruit

public function __construct(){//公有 建構函式

$this->color = 'green';//繼承父類成員變數 color

echo 'this is orange.

';//列印this is orange.

$banana = new banana();//例項化

$orange = new orange();//例項化

結果:

3.final在繼承類中的影響

例:final.php

final class super{//建立super類(最終類)

public function show() { //公有 成員函式 show

echo "baseclass::show()"; //列印baseclass::show()

class sub extends super {//建立sub無法繼承父類super

結果:

希望乙個類的方法不被子類繼承。

例:final2.php

class super{ //建立super類

final public function show() { //公有 成員函式 show 無法被繼承

echo "super::show()"; //列印super::show()

class sub extends super { //建立sub繼承父類super

public function show() {//公有 成員函式 show

echo "sub:: show()";//列印sub:: show()

結果:

php不呼叫父類構造 php呼叫父類構造方法是什麼

php呼叫父類構造方法 首先父類先建構函式,為 public function construct 然後使用 parent construct 呼叫父類建構函式即可。php呼叫父類構造方法 一 使用函式 parent construct 呼叫父類建構函式 如下 class myclass 父類 pu...

php不呼叫父類構造 php如何呼叫父類構造方法?

php呼叫父類構造方法 使用parent呼叫父類的構造,用 引用乙個類,為 parent construct title,firstname,mainname,price php呼叫父類構造方法 使用parent呼叫父類的構造方法 要引用乙個類而不是物件的方法,可以使用 兩個冒號 而不是 所以,pa...

php父類繼承子類 PHP父類方法繼承問題

有幾個類的很相似,只是其方法對資料處理的邏輯和最後資料輸出的結果有些差別,可以通過這樣的思路實現嗎?1.思路一,通過修改抽象函式邏輯實現返回值不同abstract class parentsclass child extends parentsclass child extends parents ...