天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

實例講解PHP面向對象之多態

什么是多態性?

多態性是繼數據庫抽象和繼承后,面向對象語言的第三個特征。多態即多種形態,具有表現多種形態的能力特征。在面向對象中表示根據對象的類型以不同方式處理。多態性允許每個對象以適合自身的方式去響應共同的消息。多態性增強了軟件的靈活性和重用性。

如我們創建一個doing()方法,如果是學生則打印上課,如是公司職員則打印上班。

普通做法

使用if判斷
復制代碼 代碼如下:
/**
 * php多態性
 * 瓊臺博客
 */
 
// 定義學生類
class student{
    public function cla(){
            echo "學生工正在上課!<br />";
    }
}
 
// 定義職員類
class office{                             
        public function Wor(){
            echo "職員正在上班!<br />";
        }
}
 
// 判斷對象類型方法
function doing($obj){
        if($obj instanceof student){
            $obj->cla();
        }elseif($obj instanceof office){
            $obj->wor();
        }else{
            echo "沒有這個對象!";
        }
}
 
doing(new student()); // 學生正在上課
doing(new office());  // 職員正在上班

以上結果輸出:

學生正在上課
職員正在上班

這種普通方法有個缺點,就是對象如果很多,那么if..else..很長,不靈活。
 
多態性做法

定義一個公共抽象方法,所有子類繼承它。
復制代碼 代碼如下:
/**
 * php多態性
 * 瓊臺博客
 */
 
// 定義一個公共類
class pub{
    protected function working(){
        echo "本方法需要在子類中重載!";
    }
}
 
// 定義學生類,繼承公共類pub
class student extends pub{
    public function working(){
        echo "學生工正在上課!<br />";
    }
}
 
// 定義職員類,繼承公共類pub
class office extends pub{
        public function working(){
        echo "職員正在上班!<br />";
        }
}
 
// 判斷對象類型方法
function doing($obj){
        if($obj instanceof pub){
            $obj->working();
        }else{
            echo "沒有這個對象!";
        }
}
 
doing(new student()); // 學生正在上課
doing(new office());  // 職員正在上班

這就是多態的特性,靈活重用。
 
其它做法

從多態性的實現方式來看,無非就規范了每個類都要重載父類的一個方法,從而達到統一效果。而我們在定義類的時候,自行加上統一的方法也可行。因此以上例子也可以這么實現:
復制代碼 代碼如下:
/**
 * php多態性
 * 瓊臺博客
 */
 
// 定義學生類
class student{
    // 定義統一的方法pub
    public function pub(){
        echo "學生工正在上課!<br />";
    }
}
 
// 定義職員類
class office{
    // 定義統一的方法pub
        public function pub(){
        echo "職員正在上班!<br />";
        }
}
 
// 判斷對象類型方法
function doing($obj){
    if($obj){
        // 調用類的統一方法
            $obj->pub();
    }else{
        echo '沒有這個對象'; 
    }
}
 
doing(new student()); // 學生正在上課
doing(new office());  // 職員正在上班

當然,以上的例子不能說明多態性就能使用這樣的方式搞定,畢竟多態性在復雜的程序設計中,它能有效的達到靈活重用的特性。

多態性也可以理解為一種程序設計方式,而程序設計最終目的無非就是:靈活,多態,重用,高效。

php技術實例講解PHP面向對象之多態,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产在线精品亚洲视频在线 | 男女午夜性爽快免费视频不卡 | 日本无卡无吗在线 | 日本污ww视频网站 | 神马电影dy888午夜我不卡 | 精品国产在线亚洲欧美 | 大胸美女洗澡扒奶衣挤奶 | 欧美一区二区日韩一区二区 | 免费精品一区二区三区在线观看 | 轻轻cao| 黑丝美女被人操 | 亚洲欧洲日本天天堂在线观看 | 伊人综合在线影院 | 野花韩国高清完整版在线观看5 | 99视频免费播放 | 色吧最新网址 | 午夜宅宅伦电影网 | 被男按摩师添的好爽在线直播 | 日本久久精品免视看国产成人 | 寂寞夜晚视频高清观看免费 | 九九热这里只有精品2 | 91极品蜜桃臀在线播放 | 国产成人在线视频观看 | 国产精品AV视频一二三区 | 大屁股妇女流出白浆 | 最新国产亚洲亚洲精品视频 | 接吻吃胸摸下面啪啪教程 | 东莞桑拿美女 | 国产中文在线观看 | 亚洲欧美中文在线一区 | 亚洲人成人毛片无遮挡 | jiapanese50欧美熟妇 | 摸老师丝袜小内内摸出水 | 欧美成人精品高清在线观看 | 三级黄在线 | 欧美日韩亚洲中字二区 | 麻豆精品无码久久久久久久久 | 久久r视频 | 国内精品自线在拍2020不卡 | 国内高清在线观看视频 | 肉色欧美久久久久久久蜜桃 |