php語言

當前位置 /首頁/計算機/php語言/列表

PHP中多型如何實現

PHP是一種HTML內嵌式的,用來製作動態網頁的伺服器端的指令碼語言。以下是本站小編整理的PHP中多型如何實現的內容,歡迎學習!

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相關文章推薦:

torm 2017特色

如何禁用eval函式

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

4.如何選擇PHP版本

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

YADMIN簡明安裝教程

7.資料庫設計和訪問資料庫的 PHP 程式碼中出現的五個常見問題

核心分析之全域性變數

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

10.自學PHP方法

TAG標籤:PHP 多型 #