php-抽象方法
阿新 • • 發佈:2021-09-07
資料
php官網抽象類詳解 | |
---|---|
連結 |
- 說明
定義為抽象的類不能被例項化。任何一個類,如果它裡面至少有一個方法是被宣告為抽象的,
那麼這個類就必須被宣告為抽象的。被定義為抽象的方法只是聲明瞭其呼叫方式(引數),
不能定義其具體的功能實現。
繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;
另外,這些方法的訪問控制必須和父類中一樣(或者更為寬鬆)。
例如某個抽象方法被宣告為受保護的,那麼子類中實現的方法就應該宣告為受保護的或者公有的,
而不能定義為私有的。此外方法的呼叫方式必須匹配,即型別和所需引數數量必須一致。
例如,子類定義了一個可選引數,而父類抽象方法的聲明裡沒有,則兩者的宣告並無衝突。
程式碼示例
<?php abstract class AbstractCar { /** * 定義一個車的抽象 * 車不是具體的車,車有三輪車,四輪車,還有兩輪車, * 但是都有的特點就是都能坐人,都能跑,都有顏色等等 * 所以不是具體的是抽象的, * 玩具車也是同理不過玩具車做的只能是小人 */ public function getColor() { print_r($this->color()); } abstract public function color(); } # 自行車 繼承抽象類 車 class Bicycle extends AbstractCar { public function color() { return 'black'; } } # 拖拉機 繼承抽象類 車 class Tractors extends AbstractCar { public function color() { return 'red'; } } # 例項化自行車 $bicycle = new Bicycle(); print_r($bicycle->getColor());# 輸出black # 例項化汽車 $tractors = new Tractors(); print_r($tractors->getColor());# 輸出red