首頁 >後端開發 >php教程 >php抽象類別詳解

php抽象類別詳解

小云云
小云云原創
2018-03-15 10:09:521918瀏覽

PHP 5 支援抽象類別和抽象方法。定義為抽象的類別不能被實例化。任何一個類,如果它裡面至少有一個方法是被聲明為抽象的,那麼這個類別就必須被宣告為抽象的。被定義為抽象的方法只是聲明了其呼叫方式(參數),不能定義其特定的功能實作。

注意:

  1. 繼承一個抽象類別的時候,子類別必須定義父類別中的所有抽象方法;

  2. 另外,這些方法的存取控制必須和父類別中一樣(或更為寬鬆)。

  3. 方法的呼叫方式必須匹配,即類型和所需參數數量必須一致。

範例:

<?phpabstract class AbstractClass{
    // 我们的抽象方法仅需要定义需要的参数
    abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{

    // 我们的子类可以定义父类签名中不存在的可选参数
    // 该访问控制只能是公有的(public)或受保护(protected)的
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {            $prefix = "Mrs";
        } else {            $prefix = "";
        }        return "{$prefix}{$separator} {$name}";
    }
}$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>

結果:

Mr. Pacman
Mrs. Pacwoman

分析:

雖然子類別定義了一個可選參數,而父類別抽象方法的宣告裡沒有,但和注意中的第三點並無衝突

相關推薦:

 php抽象類別的實作方法詳解

php抽象類別、介面的差異與選擇實例詳解

#php抽象類別特性實例詳解

#

以上是php抽象類別詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn