<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            php語言

            PHP中多態如何實現

            時間:2025-05-06 18:45:40 php語言 我要投稿
            • 相關推薦

            PHP中多態如何實現

              PHP是一種HTML內嵌式的,用來制作動態網頁的服務器端的腳本語言。以下是百分網小編整理的PHP中多態如何實現的內容,歡迎學習!

              1 PHP語言介紹

              PHP是一種HTML內嵌式的,用來制作動態網頁的服務器端的腳本語言。其特點是:開發周期短,穩定安全,簡單易學,免費開源,良好的跨平臺特性。PHP是一種面向對象的程序設計語言,目前已成為全球最受歡迎的五大開發語言之一。

              2 多態的概念

              封裝、繼承和多態是面向對象的三大特性。多態英文為Polymorphism,是指同一個實體同時具有多種不同的形態。多態是面向對象程序設計的一個重要特征,如果一個語言只支持類而不支持多態,說明該語言是基于對象的,而不是面向對象的。PHP是面向對象的Web開發語言,因此PHP是支持多態的。多態Polymorphism按字面的意思就是“多種狀態”。同一操作作用于不同的對象,可以有不同的解釋,產生不同的執行結果。在面向對象程序設計語言中,接口的多種不同的實現方式即為多態。多態性是允許你將父類設置成一個或多個其子對象相等的技術,父對象可以根據子對象的特性以不同的方式運作。簡單的說,就是允許將子類對象指向父類的引用。PHP是一種弱類型的編程語言,其變量的使用無需先聲明,即不必指明變量的數據類型,故在子類指向父類的引用時亦無需聲明對象的數據類型。

              3 多態的作用

              把不同的子類對象都當作父類來看,可以屏蔽不同子類對象之間的差異,寫出通用的代碼,做出通用的編程,以適應需求的不斷變化。比如某個基類繼承出多個子類,其基類有一個方法echoVoice,其子類也有這個方法,但行為不同,這些子類對象可以賦給其基類對象的引用,這樣其基類的對象就可以執行不同的操作了。實際上是通過基類來訪問其子類對象的。整體來看,多態可以減少代碼冗余,增加代碼的運行效率。

              4 多態實現條件

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

              5 PHP多態舉例

              首先,定義父類Animal。Animal類中包含private屬性$name,構造方法construct,獲取動物名稱的方法getAnimalName及動物發聲的方法echoVoice。

              class Animal{

              private $name;

              function __construct($name){

              $this->name = $name;

              }

              function getAnimalName(){

              echo $this->name;

              }

              function echoVoice(){

              echo “動物的叫聲!”;

              }

              }

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

              class Bird extends Animal{

              function echoVoice(){

              echo “這是鳥的叫聲!”;

              }

              }

              class Cat extends Animal{

              function echoVoice(){

              echo “這是貓的叫聲!”;

              }

              }

              然后,定義女孩類Girl。Girl類中包含private屬性$girlName,構造方法construct,獲取女孩名的方法getGirlName及養寵物的方法feedingPet方法。feedingPet方法是實現多態的一個重要環節,參數$pet會根據不同的子類對象作出不同的形態,即多態。

              class Girl{

              private $girlName;

              function __construct($girlName){

              $this->girlName = $girlName;

              }

              function getGirlName(){

              echo $this->girlName;

              }

              function feedingPet($pet){

              $pet->getName();

              $pet->echoVoice();

              }

              }

              最后,實例化對象$bird1,$cat1及$girl1,$girl2。通過對象$girl1和$girl2分別調用feedingPet方法,傳遞的參數分別為子類對象$bird1和$cat1。

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

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

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

              $girl1->getGirlName();

              echo “養的寵物是:”;

              $girl1->feedingPet($bird1);

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

              echo “養的寵物是:”;

              $girl2->feedingPet($cat1);

              結果輸出:女孩1養的寵物是:百靈鳥,這是鳥的叫聲!女孩2養的寵物是:波斯貓,這是貓的叫聲!

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


            更多PHP相關文章推薦:

            1.phpStorm 2017特色

            2.php如何禁用eval函數

            3.10個技巧優化PHP程序Laravel 5框架

            4.如何選擇PHP版本

            5.編譯chm格式PHP手冊的方法

            6.PHPMYADMIN簡明安裝教程

            7.數據庫設計和訪問數據庫的 PHP 代碼中出現的`五個常見問題

            8.php內核分析之全局變量

            9.php實現讀取手機客戶端瀏覽器的類

            10.自學PHP方法

            【PHP中多態如何實現】相關文章:

            PHP5中實現多態的兩種方法實例07-29

            PHP中如何實現crontab代碼05-30

            php如何實現快速排序09-18

            PHP中實現頁面跳轉07-06

            如何用PHP實現找回密碼11-11

            php如何實現驗證碼06-13

            PHP弱類型變量是如何實現的05-31

            如何實現PHP圖片裁剪與縮放07-13

            PHP如何遞歸實現json類06-27

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看