首頁 > 後端開發 > PHP問題 > 如何在PHP中實作物件呼叫其父類別的方法

如何在PHP中實作物件呼叫其父類別的方法

PHPz
發布: 2023-04-04 10:56:01
原創
1129 人瀏覽過

在 PHP 中,物件可以呼叫自身的方法以及繼承自父類別的方法。而在某些情況下,我們希望在一個子類別的方法中呼叫其父類別的方法,這時需要用到 PHP 物件呼叫父類別方法的方法。

下面我們就來討論如何在 PHP 中實作物件呼叫其父類別的方法。

一、透過 parent 關鍵字呼叫父類別方法

在 PHP 中,有一個關鍵字 parent 可以用來呼叫父類別中的方法。透過在子類別方法中使用 parent::method() 的形式,就可以呼叫父類別中的同名方法。

例如,我們有以下的父類別和子類別:

class Animal {
    public function eat() {
        echo 'Animal is eating...';
    }
}

class Cat extends Animal {
    public function eat() {
        parent::eat();
        echo 'Cat is eating...';
    }
}
登入後複製

在上面的程式碼中,Animal 類別有一個eat()方法,而Cat 類別繼承了Animal 類別並覆寫了eat() 方法。在Cat 類別的eat() 方法中,透過parent::eat() 呼叫了父類別的eat() 方法。

呼叫 Cat 類別的 eat() 方法,則會輸出 Animal is eating...Cat is eating...

二、使用$this->parent 呼叫父類別方法

除了使用parent 關鍵字,在PHP 5.3 以上版本中,也可以透過$this->parent 的形式來呼叫父類別方法。

例如,我們可以將上面的Cat 類別改為以下形式:

class Cat extends Animal {
    public function eat() {
        $this->parent::eat();
        echo 'Cat is eating...';
    }
}
登入後複製

這裡我們使用了$this->parent 調用了父類別eat() 方法,並輸出了Cat is eating...

三、總結

透過使用parent 關鍵字或$this->parent,我們可以輕鬆地實作PHP 中物件呼叫其父類別的方法。

要注意的是,當父類別方法中存在可變參數時,例如:

class Animal {
    public function eat($food1, $food2) {
        echo "Animal is eating $food1 and $food2";
    }
}

class Cat extends Animal {
    public function eat($food1, $food2) {
        //error, 不可使用parent::eat($food1, $food2)
    }
}
登入後複製

在子類別中,是不允許使用parent::eat($food1 , $food2) 的形式來呼叫父類別的方法的。因為父類別中的可變參數可能會影響子類別中的行為,所以PHP 不允許這種方式,必須在子類別方法中重新定義參數,例如:

class Cat extends Animal {
    public function eat($food1, $food2) {
        parent::eat($food1, $food2);
        echo "Cat is eating $food1 and $food2";
    }
}
登入後複製

以上就是PHP 中物件調用父類別方法的方法的簡單介紹,希望對讀者了解PHP 物件呼叫父類別方法有所幫助。

以上是如何在PHP中實作物件呼叫其父類別的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板