從父類別中呼叫子類別函數
在PHP 中,可以從父類別中的子類別呼叫函數,但它需要仔細規劃。
考慮以下程式碼範例:
class whale { ... }
class fish extends whale { ... }
在這個例子中,我們有一個whale類別和一個從它繼承的fish類別。目標是在whale類別的myfunc()函數內呼叫fish類別的test()函數。
解決方案:使用抽象類別
來實現這,我們可以利用抽象類別。抽象類別強制在其子類別中實作某些方法。
abstract class whale {
function __construct() { ... }
function myfunc() { $this->test(); }
abstract function test();
}
在更新的鯨魚魚類中,我們現在將 myfunc() 和 test() 宣告為抽象方法。 myfunc() 會呼叫 test(),需要在子類別中實作。
class fish extends whale {
function __construct() { parent::__construct(); }
function test() { echo "So you managed to call me !!"; }
}
在fish類別中,我們提供了test()的實作。這確保了父類別的抽像要求得到滿足。
透過此設置,我們現在可以在 Whale 類別的 myfunc() 內從 Fish 呼叫 test() 函數。
$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!
透過使用抽象類,我們強制執行正確的繼承並確保子類別實作所需的方法。這使我們能夠從父類無縫調用子類函數。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3