1. 程式人生 > 其它 >php-抽象方法

php-抽象方法

資料

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