PHP物件導向編程學習之二_PHP教程

來源:互聯網
上載者:User

PHP物件導向編程學習之二


介面

介面就是把不同類的共同行為經行了定義,然後在不同的類裡面實現不同功能。當有很多人一起開發一個項目時,可能都會去調用別人寫的一些類,那你就會問,我怎麼知道他的某個功能的實現方法是怎麼命名的呢,這個時候PHP介面類interface就起到作用了,當我們定義了一個介面類時,它裡面的方式是下面的子類必須實現的,比如 :

多態

因為介面的實現方法可以有很多,所以對於介面裡面頂一頂方法的具體實現是多種多樣,這種特性稱為多態。多態是指在物件導向中能夠根據使用類的上下文來重新定義或改變類的性質和行為。
PHP不支援重載實現多態,但是PHP可以變向的實現多態效果。
案例一:

name;}public function setName($_name){$this->name = $_name;}}class UserAdmin{ //操作.public static function  ChangeUserName(User $_user,$_userName){$_user->setName($_userName);}}$normalUser = new NormalUser();UserAdmin::ChangeUserName($normalUser,"Tom");//這裡傳入的是 NormalUser的執行個體.echo $normalUser->getName();?>
案例二:

抽象類別

抽象類別是介於介面與類的定義之間
PHP5支援抽象類別和抽象方法。抽象類別不能直接被執行個體化,你必須先繼承該抽象類別,然後再執行個體化子類。抽象類別中 至少要包含一個抽象方法。如果類方法被聲明為抽象的,那麼其中就不能包括具體的功能實現。
繼承一個抽象類別的時候,子類必須實現抽象類別中的所有抽象方法;另外,這些方法的可見度 必須和抽象類別中一樣(或者更為寬鬆)。如果抽象類別中某個抽象方法被聲明為protected,那麼子類中實現的方法就應該聲明為protected或者public,而不 能定義為private。
getValue() . " ";    }}class ConcreteClass1 extends AbstractClass{    protected function getValue() {        return "ConcreteClass1";    }    public function prefixValue($prefix) {        return "{$prefix}ConcreteClass1";    }}class ConcreteClass2 extends AbstractClass{    public function getValue() {        return "ConcreteClass2";    }    public function prefixValue($prefix) {        return "{$prefix}ConcreteClass2";    }}$class1 = new ConcreteClass1;$class1->printOut();echo $class1->prefixValue('FOO_') ." ";$class2 = new ConcreteClass2;$class2->printOut();echo $class2->prefixValue('FOO_') ." ";?>




http://www.bkjia.com/PHPjc/953323.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/953323.htmlTechArticlePHP物件導向編程學習之二 介面 介面就是把不同類的共同行為經行了定義,然後在不同的類裡面實現不同功能。當有很多人一起開發一個項...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.