PHP 抽象類繼承小測試

近期在寫rest接口時,發如今接口中大量使用了elseif switch...等狀態判斷語句,爲了減小這樣的重複語句,增長代碼可讀性,經朋友建議選擇使用設計模式之狀態模式對代碼進行改造。在改造過程當中遇到一個問題,php中抽象類是否能夠繼承具體類,搜索了一番沒有滿意的答案,因而本身測試,下面是本身的測試例子。php

//基類Rest
<?php
class Rest{
    /*http head信息*/
    Const HTTP_OK = '200';
    Const HTTP_CREATED = '201';/
    Const HTTP_Accepted = '202';
    Const HTTP_NoContent = '204';
    Const HTTP_InvalidRequest = '400';
    Const HTTP_Unauthorized = '401';/。
    Const HTTP_Forbidden = '403';
    Const HTTP_NotFound = '404';
    Const HTTP_NotAcceptable = '406';
}
//abstract 抽象類
abstract class myAbstract extends Rest{
    //抽象類方法(注意抽象類方法以 ;結束,沒有具體操做)
    public abstract function first();
}
//抽象類子類
class chrild extends myAbstract{
    //重寫抽象類方法(注意繼承抽象類的子類必須重寫抽象類中的全部抽象方法)
    public function first(){
        echo parent::HTTP_OK;
    }
}
//實例化子類
$test = new chrild();
$test->first();
//輸出結果爲 200

重結果上看,抽象類myAbstract確實繼承了具體類Rest,實時證實抽象類是能夠繼承具體類的。 分享的是本人開發過程當中的一點經驗,如有不對的地方,歡迎指點。設計模式

相關文章
相關標籤/搜索