欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)例講解PHP面向?qū)ο笾鄳B(tài)

 更新時(shí)間:2014年08月20日 10:52:32   作者:瓊臺  
這篇文章主要介紹了實(shí)例講解PHP面向?qū)ο笾鄳B(tài),本文用實(shí)例講解什么情況下使用PHP的多態(tài)、多態(tài)的好處等內(nèi)容,可以充分幫你理解多態(tài),需要的朋友可以參考下

什么是多態(tài)性?

多態(tài)性是繼數(shù)據(jù)庫抽象和繼承后,面向?qū)ο笳Z言的第三個(gè)特征。多態(tài)即多種形態(tài),具有表現(xiàn)多種形態(tài)的能力特征。在面向?qū)ο笾斜硎靖鶕?jù)對象的類型以不同方式處理。多態(tài)性允許每個(gè)對象以適合自身的方式去響應(yīng)共同的消息。多態(tài)性增強(qiáng)了軟件的靈活性和重用性。

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

普通做法

使用if判斷

復(fù)制代碼 代碼如下:

/**
 * PHP多態(tài)性
 * 瓊臺博客
 */
 
// 定義學(xué)生類
class student{
    public function cla(){
            echo "學(xué)生工正在上課!<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 "沒有這個(gè)對象!";
        }
}
 
doing(new student()); // 學(xué)生正在上課
doing(new office());  // 職員正在上班

以上結(jié)果輸出:

學(xué)生正在上課
職員正在上班

這種普通方法有個(gè)缺點(diǎn),就是對象如果很多,那么if..else..很長,不靈活。
 
多態(tài)性做法

定義一個(gè)公共抽象方法,所有子類繼承它。

復(fù)制代碼 代碼如下:

/**
 * PHP多態(tài)性
 * 瓊臺博客
 */
 
// 定義一個(gè)公共類
class pub{
    protected function working(){
        echo "本方法需要在子類中重載!";
    }
}
 
// 定義學(xué)生類,繼承公共類pub
class student extends pub{
    public function working(){
        echo "學(xué)生工正在上課!<br />";
    }
}
 
// 定義職員類,繼承公共類pub
class office extends pub{
        public function working(){
        echo "職員正在上班!<br />";
        }
}
 
// 判斷對象類型方法
function doing($obj){
        if($obj instanceof pub){
            $obj->working();
        }else{
            echo "沒有這個(gè)對象!";
        }
}
 
doing(new student()); // 學(xué)生正在上課
doing(new office());  // 職員正在上班

這就是多態(tài)的特性,靈活重用。
 
其它做法

從多態(tài)性的實(shí)現(xiàn)方式來看,無非就規(guī)范了每個(gè)類都要重載父類的一個(gè)方法,從而達(dá)到統(tǒng)一效果。而我們在定義類的時(shí)候,自行加上統(tǒng)一的方法也可行。因此以上例子也可以這么實(shí)現(xiàn):

復(fù)制代碼 代碼如下:

/**
 * PHP多態(tài)性
 * 瓊臺博客
 */
 
// 定義學(xué)生類
class student{
    // 定義統(tǒng)一的方法pub
    public function pub(){
        echo "學(xué)生工正在上課!<br />";
    }
}
 
// 定義職員類
class office{
    // 定義統(tǒng)一的方法pub
        public function pub(){
        echo "職員正在上班!<br />";
        }
}
 
// 判斷對象類型方法
function doing($obj){
    if($obj){
        // 調(diào)用類的統(tǒng)一方法
            $obj->pub();
    }else{
        echo '沒有這個(gè)對象'; 
    }
}
 
doing(new student()); // 學(xué)生正在上課
doing(new office());  // 職員正在上班

當(dāng)然,以上的例子不能說明多態(tài)性就能使用這樣的方式搞定,畢竟多態(tài)性在復(fù)雜的程序設(shè)計(jì)中,它能有效的達(dá)到靈活重用的特性。

多態(tài)性也可以理解為一種程序設(shè)計(jì)方式,而程序設(shè)計(jì)最終目的無非就是:靈活,多態(tài),重用,高效。

相關(guān)文章

  • php7新特性的理解和比較總結(jié)

    php7新特性的理解和比較總結(jié)

    在本文里我們給大家整理了關(guān)于php7新特性的理解和比較以及相關(guān)實(shí)例代碼內(nèi)容,正在學(xué)習(xí)的朋友們參考下。
    2019-04-04
  • PHP中Too few arguments to function的問題及解決

    PHP中Too few arguments to function的問題及解決

    這篇文章主要介紹了PHP中Too few arguments to function的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • WordPress中給媒體文件添加分類和標(biāo)簽的PHP功能實(shí)現(xiàn)

    WordPress中給媒體文件添加分類和標(biāo)簽的PHP功能實(shí)現(xiàn)

    這篇文章主要介紹了WordPress中給媒體文件添加分類和標(biāo)簽的PHP功能實(shí)現(xiàn),同時(shí)文中也提到了Media Library Categories這個(gè)插件同樣可以達(dá)到目的,需要的朋友可以參考下
    2015-12-12
  • php session_start()出錯(cuò)原因分析及解決方法

    php session_start()出錯(cuò)原因分析及解決方法

    本文是對php中session_start()的出錯(cuò)原因及解決方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • php實(shí)現(xiàn)過濾UBB代碼的類

    php實(shí)現(xiàn)過濾UBB代碼的類

    這篇文章主要介紹了php實(shí)現(xiàn)過濾UBB代碼的類,涉及php正則表達(dá)式的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP Stream_*系列函數(shù)

    PHP Stream_*系列函數(shù)

    流(stream)是一種數(shù)據(jù)抽象。使用流包裝數(shù)據(jù)源后,數(shù)據(jù)都將會獲得統(tǒng)一的操作,不管數(shù)據(jù)源是文件、網(wǎng)絡(luò)連接、壓縮數(shù)據(jù)中的哪一種。PHP中的stream_*系列函數(shù)就是用來獲取、管理流的一組函數(shù)。
    2010-08-08
  • php使用PhpSpreadsheet導(dǎo)出Excel表格的實(shí)例詳解

    php使用PhpSpreadsheet導(dǎo)出Excel表格的實(shí)例詳解

    這篇文章將給大家介紹php使用PhpSpreadsheet導(dǎo)出Excel表格的實(shí)例,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • php異常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()''d code error

    php異常:Parse error: syntax error, unexpected T_ENCAPSED_AND_W

    PHP會出現(xiàn)eval()'d code error 錯(cuò)誤提示的原因一般都是因?yàn)槟0邋e(cuò)誤,原因有以下幾種情況
    2011-05-05
  • 如何在HTML 中嵌入 PHP 代碼

    如何在HTML 中嵌入 PHP 代碼

    本文給大家分享的是在html中嵌入php代碼的方法,十分的簡單實(shí)用,有需要的小伙伴可以參考下
    2015-05-05
  • PHP讀取PPT文件的方法

    PHP讀取PPT文件的方法

    這篇文章主要介紹了PHP讀取PPT文件的方法,通過php第三方類庫PHPPowerPoint實(shí)現(xiàn)對ppt文件的讀取操作,需要的朋友可以參考下
    2015-12-12

最新評論