抽象類別和介面的區別(php執行個體)

來源:互聯網
上載者:User
<?php//抽象類別-可以是空類,不能建立對象,不能執行個體化,只能被繼承abstract class absFirst{//關鍵字abstract    protected $absBl = '$absBl'; //可以定義變數,關鍵字[public|protected|private]    const ABSCL = 'ABS-CL';//可以定義常量    abstract function absFunFirst($cs=array());//抽象方法關鍵字abstract,可以有參數,可以有預設值,沒有方法體    public function absFunSecond(){//可以定義其他成員方法,關鍵字[public|protected|private]        echo "抽象類別第一個方法,第一個變數是“{$this->absBl}”,第一個常量是“".self::ABSCL."”";    }}//介面1-可以是空的介面-不能定義變數-不能定義其他成員方法interface intFirst{//關鍵字interface    const INTCLF = 'INT-CLF';//可以定義常量    public function intFunFirst($ic=array());//介面方法關鍵字public,可以有參數,可以有預設值,沒有方法體}//介面2interface intSecond{    const INTCLS = 'INT-CLS';    public function intFunSecond();}//實作類別-定義的抽象方法和介面需全部實現//實現抽象類別關鍵字extends,單一繼承//實現介面關鍵字implements,多介面class claFirst extends absFirst implements intFirst,intSecond{    //實現第一個抽象方法    public function absFunFirst($cf='第一個抽象方法'){//關鍵字只能是public,參數個數需保持一致        echo $cf."\n";    }    //重寫抽象類別中的方法    public function absFunSecond(){        echo '我被重寫了'."\n";    }    //實現第一個介面的第一個方法    public function intFunFirst($ic=',哈哈'){//關鍵字只能是public,參數個數需保持一致        echo '我是第一個介面方法調的是第二介面的常量'.self::INTCLS.$ic."\n";    }        //實現第二個介面的第一個方法    public function intFunSecond(){//關鍵字只能是public,參數個數需保持一致        echo '我是第二個介面方法調的是第一介面的常量'.self::INTCLF."\n";    }    }//使用$cf = new claFirst();$cf->absFunFirst();$cf->absFunSecond();$cf->intFunFirst();$cf->intFunSecond();/*運行結果:第一個抽象方法我被重寫了我是第一個介面方法調的是第二介面的常量INT-CLS,哈哈我是第二個介面方法調的是第一介面的常量INT-CLF*//*總結:介面是特殊的抽象類別抽象類別和介面相同點:1、都可以為空白2、都不能建立對象,不能被執行個體化3、都可以定義常量4、定義的抽象方法可以有參數,可以有預設值,沒有方法體5、實作類別需實現定義的所有抽象方法,且關鍵字為public抽象類別和介面不同點: 1、類關鍵字不同abstract && interface  2、抽象類別可以定義變數,介面不可以 3、抽象類別可以定義其他非抽象方法,介面不可以 4、抽象類別定義的抽象方法關鍵為abstract,介面定義的方法關鍵字為public 5、實現抽象類別只能單一繼承,關鍵字為extends,介面可以實現多個介面,關鍵字為implements */?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.