7.9.1 PHP多態(tài)的應(yīng)用實(shí)例

7.9.1 PHP多態(tài)的應(yīng)用實(shí)例
面向?qū)ο蟮奶匦远鄳B(tài)
對(duì)象的多態(tài)性是指在父類中定義的屬性或行為被子類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在父類及其各個(gè)子類中具有不同的語(yǔ)義。
例如:"幾何圖形"的"繪圖"方法,"橢圓"和"多邊形"都是"幾何圖"的子類,其"繪圖"方法功能不同。

<?php
/*  多態(tài)特性
 *
 *      1. 程序擴(kuò)展準(zhǔn)備
 *
 *      技術(shù):
 *          1. 必須有繼承關(guān)系, 父類最好是接口或抽象類
 *
 *
 *
 */


    interface USB {
        const WIDTH = 12;
        const HEIGHT = 3;
            
        function load();
        function run();
        function stop();    
    }


    class Cumputer {
        function useUSB(USB $usb) {
            $usb -> load();
            $usb -> run();
            $usb -> stop();     
        }
    
    }

    class Mouse implements USB{
        function load() {
            echo "加載鼠標(biāo)成功!<br>";
        }

        function run() {
            echo "運(yùn)行鼠標(biāo)功能!<br>";
        }

        function stop() {
            echo "鼠標(biāo)工作結(jié)束!<br>";
        }
    }


    class KeyPress implements USB {
    
        function load() {
            echo "加載鍵盤成功!<br>";
        }



        function run() {
            echo "運(yùn)行鍵盤成功!<br>";
        }

        function stop() {
            echo "停止鍵盤使用!<br>";
        
        }


    }


    class Worker {
        function work() {
            $c = new Cumputer();
            
            $m = new Mouse;

            $k = new KeyPress;

            $c->useUSB($k);
            $c->useUSB($m);
        }
    }


    $w = new Worker;

    $w -> work();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容