<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁(yè)>軟件介紹>PHP中多態(tài)如何實(shí)現(xiàn) 查詢:
               
          PHP中多態(tài)如何實(shí)現(xiàn)

              是一種HTML內(nèi)嵌式的,用來(lái)制作動(dòng)態(tài)網(wǎng)頁(yè)的服務(wù)器端的腳本語(yǔ)言。以下是整理的PHP中多態(tài)如何實(shí)現(xiàn)的內(nèi)容,歡迎學(xué)習(xí)!

            1 PHP語(yǔ)言介紹

            PHP是一種HTML內(nèi)嵌式的,用來(lái)制作動(dòng)態(tài)網(wǎng)頁(yè)的服務(wù)器端的腳本語(yǔ)言。其特點(diǎn)是:開(kāi)發(fā)周期短,穩(wěn)定安全,簡(jiǎn)單易學(xué),免費(fèi)開(kāi)源,良好的跨平臺(tái)特性。PHP是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,目前已成為全球最受歡迎的五大開(kāi)發(fā)語(yǔ)言之一。

            2 多態(tài)的概念

            封裝、繼承和多態(tài)是面向?qū)ο蟮娜筇匦?。多態(tài)英文為Polymorphism,是指同一個(gè)實(shí)體同時(shí)具有多種不同的形態(tài)。多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要特征,如果一個(gè)語(yǔ)言只支持類而不支持多態(tài),說(shuō)明該語(yǔ)言是基于對(duì)象的,而不是面向?qū)ο蟮?。PHP是面向?qū)ο蟮腤eb開(kāi)發(fā)語(yǔ)言,因此PHP是支持多態(tài)的。多態(tài)Polymorphism按字面的意思就是“多種狀態(tài)”。同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中,接口的多種不同的實(shí)現(xiàn)方式即為多態(tài)。多態(tài)性是允許你將父類設(shè)置成一個(gè)或多個(gè)其子對(duì)象相等的技術(shù),父對(duì)象可以根據(jù)子對(duì)象的特性以不同的方式運(yùn)作。簡(jiǎn)單的說(shuō),就是允許將子類對(duì)象指向父類的引用。PHP是一種弱類型的編程語(yǔ)言,其變量的使用無(wú)需先聲明,即不必指明變量的數(shù)據(jù)類型,故在子類指向父類的引用時(shí)亦無(wú)需聲明對(duì)象的數(shù)據(jù)類型。

            3 多態(tài)的作用

            把不同的子類對(duì)象都當(dāng)作父類來(lái)看,可以屏蔽不同子類對(duì)象之間的差異,寫(xiě)出通用的代碼,做出通用的編程,以適應(yīng)需求的不斷變化。比如某個(gè)基類繼承出多個(gè)子類,其基類有一個(gè)方法echoVoice,其子類也有這個(gè)方法,但行為不同,這些子類對(duì)象可以賦給其基類對(duì)象的引用,這樣其基類的對(duì)象就可以執(zhí)行不同的操作了。實(shí)際上是通過(guò)基類來(lái)訪問(wèn)其子類對(duì)象的。整體來(lái)看,多態(tài)可以減少代碼冗余,增加代碼的運(yùn)行效率。

            4 多態(tài)實(shí)現(xiàn)條件

            多態(tài)的實(shí)現(xiàn)有三個(gè)條件:首先必須有繼承,即必須有父類(或基類)及其派生的子類。其次必須有父類的引用指向子類的對(duì)象,這是實(shí)現(xiàn)多態(tài)最重要的一個(gè)條件。最后必須有方法的重寫(xiě),即子類必須對(duì)父類的某些方法根據(jù)自己的需求進(jìn)行重寫(xiě),方法名和參數(shù)都是相同的。

            5 PHP多態(tài)舉例

            首先,定義父類Animal。Animal類中包含private屬性$name,構(gòu)造方法construct,獲取動(dòng)物名稱的方法getAnimalName及動(dòng)物發(fā)聲的方法echoVoice。

            class Animal{

            private $name;

            function __construct($name){

            $this->name = $name;

            }

            function getAnimalName(){

            echo $this->name;

            }

            function echoVoice(){

            echo “動(dòng)物的叫聲!”;

            }

            }

            其次,定義子類Bird及Cat。子類Bird和Cat分別繼承父類Animal。在子類Bird和Cat中重寫(xiě)父類的echoVoice方法。

            class Bird extends Animal{

            function echoVoice(){

            echo “這是鳥(niǎo)的叫聲!”;

            }

            }

            class Cat extends Animal{

            function echoVoice(){

            echo “這是貓的叫聲!”;

            }

            }

            然后,定義女孩類Girl。Girl類中包含private屬性$girlName,構(gòu)造方法construct,獲取女孩名的方法getGirlName及養(yǎng)寵物的方法feedingPet方法。feedingPet方法是實(shí)現(xiàn)多態(tài)的一個(gè)重要環(huán)節(jié),參數(shù)$pet會(huì)根據(jù)不同的子類對(duì)象作出不同的形態(tài),即多態(tài)。

            class Girl{

            private $girlName;

            function __construct($girlName){

            $this->girlName = $girlName;

            }

            function getGirlName(){

            echo $this->girlName;

            }

            function feedingPet($pet){

            $pet->getName();

            $pet->echoVoice();

            }

            }

            最后,實(shí)例化對(duì)象$bird1,$cat1及$girl1,$girl2。通過(guò)對(duì)象$girl1和$girl2分別調(diào)用feedingPet方法,傳遞的參數(shù)分別為子類對(duì)象$bird1和$cat1。

            $bird1 = new Bird(“百靈鳥(niǎo)”);

            $cat1 = new Cat(“波斯貓”);

            $girl1 = new Girl(“女孩1”);

            $girl1->getGirlName();

            echo “養(yǎng)的寵物是:”;

            $girl1->feedingPet($bird1);

            $girl2 = new Girl(“女孩2”);

            echo “養(yǎng)的寵物是:”;

            $girl2->feedingPet($cat1);

            結(jié)果輸出:女孩1養(yǎng)的寵物是:百靈鳥(niǎo),這是鳥(niǎo)的叫聲!女孩2養(yǎng)的寵物是:波斯貓,這是貓的叫聲!

            從上面的實(shí)例看出,父類(或基類)Animal中的getAnimalName方法根據(jù)子類對(duì)象$bird1輸出百靈鳥(niǎo),根據(jù)子類對(duì)象$cat1輸出波斯貓。而在子類Bird和Cat中又分別重寫(xiě)了父類Aniaml中的echoVoice方法,故子類對(duì)象$bird1和$cat1分別輸出了自己的echoVoice方法中的內(nèi)容:“這是鳥(niǎo)的叫聲!”和“這是貓的叫聲”。因此,我們可以得出結(jié)論,PHP程序設(shè)計(jì)語(yǔ)言中完全可以實(shí)現(xiàn)多態(tài)。



          PHP安全PHP論文
          PHP-GD函數(shù)庫(kù)PHP安裝說(shuō)明
          PHP是一種腳本語(yǔ)言最初產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)php用ftp遠(yuǎn)程上傳文件
          PHP json_encode() 函數(shù)取值介紹php面向?qū)ο蟮某绦蛟O(shè)計(jì)
          php函數(shù)快速查詢PHP購(gòu)物車類Cart.class.php定義與用法
          php加iis服務(wù)器搭建PHP的運(yùn)行環(huán)境PHP實(shí)例說(shuō)明編寫(xiě)PHP代碼的5個(gè)好習(xí)慣
          提高PHP編程效率引入緩存機(jī)制提升性能如何在本地搭建php環(huán)境
          PHP陽(yáng)歷轉(zhuǎn)農(nóng)歷的類PHP模板引擎smarty進(jìn)門(mén)
          信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 中文字幕操逼网站 | 日本女人受爱高潮视频网站 | 99re在线视频免费播放 | 飘花影院一区二区 | 亚洲中文字幕在线免费观看视频 | 国产AV片 色哟哟 | 免费观看av | 狠狠草狠狠 | 国产c一区| 大学生一级黄色片免费看 |